diff options
author | crupest <crupest@outlook.com> | 2022-11-27 11:43:19 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-11-27 11:43:19 +0800 |
commit | 39b8d121b4867c667194369f17946be8ebb06e8b (patch) | |
tree | bca3f19b557d9b9120d8f482fe20b511aa21f0e0 /tool/modules/nginx.py | |
parent | 3be4d089dca831ec5e79eb457100a967b8a20398 (diff) | |
download | crupest-39b8d121b4867c667194369f17946be8ebb06e8b.tar.gz crupest-39b8d121b4867c667194369f17946be8ebb06e8b.tar.bz2 crupest-39b8d121b4867c667194369f17946be8ebb06e8b.zip |
Add basic function for checking ssl certs.
Diffstat (limited to 'tool/modules/nginx.py')
-rwxr-xr-x | tool/modules/nginx.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/tool/modules/nginx.py b/tool/modules/nginx.py index 08c8e1d..9c51d66 100755 --- a/tool/modules/nginx.py +++ b/tool/modules/nginx.py @@ -1,12 +1,15 @@ #!/usr/bin/env python3 from .template import Template -from .path import project_abs_path, nginx_template_dir +from .path import * import json import jsonschema import os import os.path import shutil +from cryptography.x509 import * +from cryptography.x509.oid import ExtensionOID + with open(os.path.join(nginx_template_dir, 'server.json')) as f: server = json.load(f) @@ -141,3 +144,25 @@ def nginx_config_dir_check(dir_path: str, domain: str) -> list: if basename not in good_files: bad_files.append(basename) return bad_files + + +def get_cert_path(root_domain): + return os.path.join(data_dir, "certbot", "certs", "live", root_domain, "fullchain.pem") + + +def get_cert_domains(cert_path, root_domain): + + if not os.path.exists(cert_path): + return None + + if not os.path.isfile(cert_path): + return None + + with open(cert_path, 'rb') as f: + cert = load_pem_x509_certificate(f.read()) + ext = cert.extensions.get_extension_for_oid( + ExtensionOID.SUBJECT_ALTERNATIVE_NAME) + domains: list = ext.value.get_values_for_type(DNSName) + domains.remove(root_domain) + domains = [root_domain, *domains] + return domains |