Package: pyacme
pyacmeA simple ACME client written in pythonInstallpipinstallpyacmeor clone this repo and usepip install .UsageAcquire certificate using http modeApply for single domain certificate using simpleast http config, root privilege needed.sudopyacme-dexample.com-c"mailto:test@mail.com"-CUS--modehttpAcquire certificate using dns modeApply for single domain certificate using simpleast dns config, which uses aliyun as dns provider, no root required.pyacme-dexample.com-c"mailto:test@mail.com"-CUS-kKEY-sSECRETInvoke withsudoIf package pyacme is installed inside environment likeconda, it may need to specify the python path:# e.g. inside a conda envsudo$(whichpython)-mpyacme-dexample.com-c"mailto:test@mail.com"-CUS--modehttpAcquire SAN certificatesUse multiple-dto supply domains. When multiple domains supplied, the root domain should be the same.pyacme-dexample.com-da.example.com-c"mailto:test@mail.com"-CUS-kKEY-sSECRETWhen domains like"a.example.com", "b.example.com"supplied like the following, the root domain"example.com"will also be added to the certificate and fill theCommon Namefield.pyacme-da.example.com-db.example.com-c"mailto:test@mail.com"-CUS-kKEY-sSECRETOptions referencerequired arguments:-d, --domain strFDQN; international domain should use punycode; use multiple-dto provide more than one domains.-c, --contact strinput domain holder's email address for CA to send notification, use multiple-cto provide more than one contact email.mailto:prefix must be included.-C, --country_codetwo-digit country code, e.g. CNoptional arguments:-h, --helpshow this help message and exit--csr_subjects strkey=value string to csr values besisdes C and CN, e.g."ST=State,L=Locality,O=test Org,emailAddres=test@email.org"--account_private_key pathabsolute path to a pem private key file. RSA key size must be larger than 2048 and multiple of 4--not_before stra date time string, acme order will not be availabe before this time;has no effect for now--not_after stra date time string, acme order will not be availabe after this time;has no effect for now-w, --working_directory pathdafault is~/.pyacme; cert can be found atworking_directroy/cert-m {http,dns}, --mode {http,dns}decide how to complete acme challenges, default "dns"; root privilege needed for "http" mode--dnsprovider {aliyun}select one dnsprovider, current support following providers['aliyun'], default provider aliyun-k, --access_key straccess key or token to dns provider, if mode is "dns", this option is required; if mode is "http", this option is omitted-s, --secret strsecret or token to dns provider, if mode is "dns", and dnsprovider is "aliyun" this option is required; if mode is "http", this option is omitted--dns_specifics strfor certain dnsproviders, pass string like"key1=value1,key2=value2 ..."--CA_entry urlurl to a CA /directory, default ishttps://acme-v02.api.letsencrypt.org/directory--poll_interval floatseconds between each authorization poll, default 5.0--poll_retry_count inttotal count of authorization poll retry, default 24--csr_priv_key_type {rsa, es256}select key type to sign CSR, default "rsa", which is rsa 2048; ECDSA with SECP256R1 is supported--csr_priv_key_size intOptional, key size of key that will sign CSR, default 2048--chall_resp_server_port intthe port used when responding to http-01 challenge; default on port 80, root previlige needed--no_ssl_verifydisable ssl certificate verification when requesting acme resources, default False--debugset this option to output debug message--versionshow program's version number and exit