File: //usr/local/CyberCP/plogical/__pycache__/customACME.cpython-310.pyc
o
��h8� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm Z d dl
mZ d dlm
Z
d dl
mZ d dlmZ d dlmZ d dlZd dlmZ d d lmZ d dlZG d
d� d�ZdS )� N)�x509)�
serialization)�rsa)�hashes)�default_backend)�padding)�CyberCPLogFileWriter)�ProcessUtilitiesc @ s� e Zd Zd0dd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Zdd� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd1d'd(�Zd)d*� Zd1d+d,�Zd2d-d.�Zd/S )3�
CustomACMEF�letsencryptc
C s t j�d|� d|� d|� d|� �� || _|| _|| _|| _|dkr8|r.d| _t j�d� nd| _t j�d � n|rDd
| _t j�d� n d| _t j�d
� d| _d| _ d| _
d| _d| _g | _
d| _d| _d|� �| _d| _d|� d�| _t j�d| j� d| j� �� tjddd� dS )zInitialize CustomACMEz$Initializing CustomACME for domain: z , email: z, staging: z, provider: �zerosslz(https://acme-staging.zerossl.com/v2/DV90z$Using ZeroSSL staging ACME directoryz https://acme.zerossl.com/v2/DV90z'Using ZeroSSL production ACME directory�6https://acme-staging-v02.api.letsencrypt.org/directoryz*Using Let's Encrypt staging ACME directory�.https://acme-v02.api.letsencrypt.org/directoryz-Using Let's Encrypt production ACME directoryNz/etc/letsencrypt/live/z7/usr/local/lsws/Example/html/.well-known/acme-challengez/etc/letsencrypt/accounts/z.keyzCertificate path: z, Challenge path: z/etc/letsencrypt/accountsT)�exist_ok)�loggingr �writeToFile�domain�admin_email�staging�provider�acme_directory�account_key�account_url� directory�nonce� order_url�authorizations�finalize_url�certificate_url� cert_path�challenge_path�account_key_path�os�makedirs)�selfr r r r � r% �)/usr/local/CyberCP/plogical/customACME.py�__init__ sB ��zCustomACME.__init__c
C st zt j�d� tjddt� d�}|| _t j�d� W dS ty9 } zt j�dt|�� �� W Y d}~d S d}~ww )
zGenerate RSA account keyzGenerating RSA account key...� � ��public_exponent�key_size�backendz&Successfully generated RSA account keyTzError generating account key: NF) r r r r �generate_private_keyr r � Exception�str)r$ �key�er% r% r&