usmannasir 2025-07-13 22:48:42 +05:00
parent cc94124bff
commit b4d4a4ac9b
2 changed files with 15 additions and 15 deletions

View File

@ -579,7 +579,7 @@ context /.well-known/acme-challenge {
return 1 return 1
@staticmethod @staticmethod
def obtainSSLForADomain(virtualHostName, adminEmail, sslpath, aliasDomain=None): def obtainSSLForADomain(virtualHostName, adminEmail, sslpath, aliasDomain=None, isHostname=False):
from plogical.acl import ACLManager from plogical.acl import ACLManager
from plogical.sslv2 import sslUtilities as sslv2 from plogical.sslv2 import sslUtilities as sslv2
from plogical.customACME import CustomACME from plogical.customACME import CustomACME
@ -609,11 +609,11 @@ context /.well-known/acme-challenge {
# Start with just the main domain # Start with just the main domain
domains = [virtualHostName] domains = [virtualHostName]
# Check if www subdomain has DNS records before adding it # Check if www subdomain has DNS records before adding it (skip for hostnames)
if sslUtilities.checkDNSRecords(f'www.{virtualHostName}'): if not isHostname and sslUtilities.checkDNSRecords(f'www.{virtualHostName}'):
domains.append(f'www.{virtualHostName}') domains.append(f'www.{virtualHostName}')
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in SSL request")
else: elif not isHostname:
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from SSL request")
if aliasDomain: if aliasDomain:
@ -648,11 +648,11 @@ context /.well-known/acme-challenge {
# Start with just the main domain # Start with just the main domain
domains = [virtualHostName] domains = [virtualHostName]
# Check if www subdomain has DNS records before adding it # Check if www subdomain has DNS records before adding it (skip for hostnames)
if sslUtilities.checkDNSRecords(f'www.{virtualHostName}'): if not isHostname and sslUtilities.checkDNSRecords(f'www.{virtualHostName}'):
domains.append(f'www.{virtualHostName}') domains.append(f'www.{virtualHostName}')
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in SSL request")
else: elif not isHostname:
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from SSL request")
if aliasDomain: if aliasDomain:
@ -692,11 +692,11 @@ context /.well-known/acme-challenge {
# Build domain list for acme.sh # Build domain list for acme.sh
domain_list = " -d " + virtualHostName domain_list = " -d " + virtualHostName
# Check if www subdomain has DNS records # Check if www subdomain has DNS records (skip for hostnames)
if sslUtilities.checkDNSRecords(f'www.{virtualHostName}'): if not isHostname and sslUtilities.checkDNSRecords(f'www.{virtualHostName}'):
domain_list += " -d www." + virtualHostName domain_list += " -d www." + virtualHostName
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in acme.sh SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has DNS records, including in acme.sh SSL request")
else: elif not isHostname:
logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from acme.sh SSL request") logging.CyberCPLogFileWriter.writeToFile(f"www.{virtualHostName} has no DNS records, excluding from acme.sh SSL request")
command = acmePath + " --issue" + domain_list \ command = acmePath + " --issue" + domain_list \
@ -765,7 +765,7 @@ context /.well-known/acme-challenge {
return 0 return 0
def issueSSLForDomain(domain, adminEmail, sslpath, aliasDomain=None): def issueSSLForDomain(domain, adminEmail, sslpath, aliasDomain=None, isHostname=False):
try: try:
# Check if certificate already exists and try to renew it first # Check if certificate already exists and try to renew it first
existingCertPath = '/etc/letsencrypt/live/' + domain + '/fullchain.pem' existingCertPath = '/etc/letsencrypt/live/' + domain + '/fullchain.pem'
@ -781,7 +781,7 @@ def issueSSLForDomain(domain, adminEmail, sslpath, aliasDomain=None):
# Build domain list for renewal # Build domain list for renewal
renewal_domains = f'-d {domain}' renewal_domains = f'-d {domain}'
if sslUtilities.checkDNSRecords(f'www.{domain}'): if not isHostname and sslUtilities.checkDNSRecords(f'www.{domain}'):
renewal_domains += f' -d www.{domain}' renewal_domains += f' -d www.{domain}'
# Try to renew with explicit webroot # Try to renew with explicit webroot
@ -795,7 +795,7 @@ def issueSSLForDomain(domain, adminEmail, sslpath, aliasDomain=None):
else: else:
logging.CyberCPLogFileWriter.writeToFile(f"Renewal failed for {domain}, falling back to new issuance") logging.CyberCPLogFileWriter.writeToFile(f"Renewal failed for {domain}, falling back to new issuance")
if sslUtilities.obtainSSLForADomain(domain, adminEmail, sslpath, aliasDomain) == 1: if sslUtilities.obtainSSLForADomain(domain, adminEmail, sslpath, aliasDomain, isHostname) == 1:
if sslUtilities.installSSLForDomain(domain, adminEmail) == 1: if sslUtilities.installSSLForDomain(domain, adminEmail) == 1:
return [1, "None"] return [1, "None"]
else: else:

View File

@ -966,7 +966,7 @@ local_name %s {
adminEmail = "email@" + virtualHost adminEmail = "email@" + virtualHost
retValues = sslUtilities.issueSSLForDomain(virtualHost, adminEmail, path) retValues = sslUtilities.issueSSLForDomain(virtualHost, adminEmail, path, None, isHostname=True)
if retValues[0] == 0: if retValues[0] == 0:
print("0," + str(retValues[1])) print("0," + str(retValues[1]))
@ -1042,7 +1042,7 @@ local_name %s {
srcPrivKey = '/etc/letsencrypt/live/' + virtualHost + '/privkey.pem' srcPrivKey = '/etc/letsencrypt/live/' + virtualHost + '/privkey.pem'
adminEmail = "email@" + virtualHost adminEmail = "email@" + virtualHost
retValues = sslUtilities.issueSSLForDomain(virtualHost, adminEmail, path) retValues = sslUtilities.issueSSLForDomain(virtualHost, adminEmail, path, None, isHostname=True)
if retValues[0] == 0: if retValues[0] == 0:
print("0," + str(retValues[1])) print("0," + str(retValues[1]))