File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/tls.cpython-310.pyc
Back
o ;j� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlmZm Z ddl ZddlZddl ZddlmZ ddlmZ dZdadZzddlZdZeej�dd ��ZW n ey^ Y nw zdd lmZ ddlmZmZ ddlm Z dZW n ey� Y nw e�!e"�Z#d Z$dZ%dd� Z&dd� Z'dd� Z(d`dd�Z)d`dd�Z*dd� Z+dd� Z,dd� Z-d`dd �Z.dad"d#�Z/dbd$d%�Z0dbd&d'�Z1d`d(d)�Z2dcd*d+�Z3 ddd-d.�Z4 ddd/d0�Z5d1d2� Z6d3d4� Z7d5d6� Z8ded8d9�Z9d:d;� Z: < = , > ? @ A B dfdCdD�Z;dEdF� Z< < , > ? @ A B G dgdHdI�Z= J < = , > ? @ A B dhdKdL�Z> = B didMdN�Z?djdPdQ�Z@dkdRdS�ZA BdldTdU�ZB BdmdVdW�ZCe"dXk�rue=dYdZd>d?d[dAdd\d]� e?dYdZ� e@dYdZd^d_� dS dS )naX A salt module for SSL/TLS. Can create a Certificate Authority (CA) or use Self-Signed certificates. :depends: PyOpenSSL Python module (0.10 or later, 0.14 or later for X509 extension support) :configuration: Add the following values in /etc/salt/minion for the CA module to function properly: .. code-block:: yaml ca.cert_base_path: '/etc/pki' CLI Example #1: Creating a CA, a server request and its signed certificate: .. code-block:: bash # salt-call tls.create_ca my_little \ days=5 \ CN='My Little CA' \ C=US \ ST=Utah \ L=Salt Lake City \ O=Saltstack \ emailAddress=pleasedontemail@example.com Created Private Key: "/etc/pki/my_little/my_little_ca_cert.key" Created CA "my_little_ca": "/etc/pki/my_little_ca/my_little_ca_cert.crt" # salt-call tls.create_csr my_little CN=www.example.com Created Private Key: "/etc/pki/my_little/certs/www.example.com.key Created CSR for "www.example.com": "/etc/pki/my_little/certs/www.example.com.csr" # salt-call tls.create_ca_signed_cert my_little CN=www.example.com Created Certificate for "www.example.com": /etc/pki/my_little/certs/www.example.com.crt" CLI Example #2: Creating a client request and its signed certificate .. code-block:: bash # salt-call tls.create_csr my_little CN=DBReplica_No.1 cert_type=client Created Private Key: "/etc/pki/my_little/certs//DBReplica_No.1.key" Created CSR for "DBReplica_No.1": "/etc/pki/my_little/certs/DBReplica_No.1.csr" # salt-call tls.create_ca_signed_cert my_little CN=DBReplica_No.1 Created Certificate for "DBReplica_No.1": "/etc/pki/my_little/certs/DBReplica_No.1.crt" CLI Example #3: Creating both a server and client req + cert for the same CN .. code-block:: bash # salt-call tls.create_csr my_little CN=MasterDBReplica_No.2 \ cert_type=client Created Private Key: "/etc/pki/my_little/certs/MasterDBReplica_No.2.key" Created CSR for "DBReplica_No.1": "/etc/pki/my_little/certs/MasterDBReplica_No.2.csr" # salt-call tls.create_ca_signed_cert my_little CN=MasterDBReplica_No.2 Created Certificate for "DBReplica_No.1": "/etc/pki/my_little/certs/DBReplica_No.1.crt" # salt-call tls.create_csr my_little CN=MasterDBReplica_No.2 \ cert_type=server Certificate "MasterDBReplica_No.2" already exists (doh!) # salt-call tls.create_csr my_little CN=MasterDBReplica_No.2 \ cert_type=server type_ext=True Created Private Key: "/etc/pki/my_little/certs/DBReplica_No.1_client.key" Created CSR for "DBReplica_No.1": "/etc/pki/my_little/certs/DBReplica_No.1_client.csr" # salt-call tls.create_ca_signed_cert my_little CN=MasterDBReplica_No.2 Certificate "MasterDBReplica_No.2" already exists (DOH!) # salt-call tls.create_ca_signed_cert my_little CN=MasterDBReplica_No.2 \ cert_type=server type_ext=True Created Certificate for "MasterDBReplica_No.2": "/etc/pki/my_little/certs/MasterDBReplica_No.2_server.crt" CLI Example #4: Create a server req + cert with non-CN filename for the cert .. code-block:: bash # salt-call tls.create_csr my_little CN=www.anothersometh.ing \ cert_type=server type_ext=True Created Private Key: "/etc/pki/my_little/certs/www.anothersometh.ing_server.key" Created CSR for "DBReplica_No.1": "/etc/pki/my_little/certs/www.anothersometh.ing_server.csr" # salt-call tls_create_ca_signed_cert my_little CN=www.anothersometh.ing \ cert_type=server cert_filename="something_completely_different" Created Certificate for "www.anothersometh.ing": /etc/pki/my_little/certs/something_completely_different.crt � N)�datetime� timedelta)�CommandExecutionError)�VersionFT�__version__z0.0)�x509)�hashes� serialization)�pkcs12z %y%m%d%H%M%SZ� %Y%m%d%H%M%SZc C sP t r$ttd�kr$ttd�k rdat�d� dS ttd�kr"t�d� dS dadS ) z@ Only load this module if the ca config options are set z0.10z0.14FzfYou should upgrade pyOpenSSL to at least 0.14.1 to enable the use of X509 extensions in the tls modulez0.15zkYou should upgrade pyOpenSSL to at least 0.15.1 to enable the full use of X509 extensions in the tls moduleT)FzQPyOpenSSL version 0.10 or later must be installed before this module can be used.)�HAS_SSL�OpenSSL_versionr �X509_EXT_ENABLED�log�debug� r r �D/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/tls.py�__virtual__� s ���r c C s( t �t�� �\} }t|�}| d�|� �S )zD Return a Unix timestamp as a string of digits :return: �f)�math�modf�time�int)�val1Zval2r r r � _microtime� s r c C s t �| td | ��S )zt Return the value corresponding to the key in __context__ or if not present, fallback to config.option. z config.option)�__context__�get�__salt__)�keyr r r �_context_or_config� s r c C s | p t d�p t d�S )z� Return the base path for certs from CLI or from options cacert_path absolute path to ca certificates root directory CLI Example: .. code-block:: bash salt '*' tls.cert_base_path �ca.contextual_cert_base_pathzca.cert_base_path)r ��cacert_pathr r r �cert_base_path� s ��r# c C s t | �S )z! Retrocompatible wrapper )r# r! r r r �_cert_base_path� s r$ c C s | r| t d<