certbot cloudflare申请通用域名证书
环境
OS:centos 7
server:apache
Let's Encrypt SSL 证书申请,原始工具已经可以完成一些基本常见的操作,但操作复杂,而且由于一些特殊原因依然会导致一些问题而难以解决,cetbot是Let's Encrypt SSL第三方工具。
直接运行后会报错
pip的url包问题,解决办法如下
这样
检查插件
默认有
配置cloudflare.ini文件
文件路径
文件配置内容如下
api在页面的
修改文件权限
在生成证书之前,检查一下,至少有一个子域名和主域名要有解析,即至少有两个解析,否则会报错。
命令执行完成之后,cerbot会自动帮助配置apache服务器证书,如果没有apache服务或者其它问题,也会有相应的报错,忽视即可。
添加任务
添加如下内容
重启corn
OS:centos 7
server:apache
简介
Let's Encrypt SSL 证书申请,原始工具已经可以完成一些基本常见的操作,但操作复杂,而且由于一些特殊原因依然会导致一些问题而难以解决,cetbot是Let's Encrypt SSL第三方工具。
安装环境
yum -y install yum-utils
yum install -y certbot-apache
问题
问题
直接运行后会报错
File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module> from .packages.urllib3.exceptions import HTTPError as BaseHTTPError
解决办法
pip的url包问题,解决办法如下
pip install requests urllib3 pyOpenSSL --force --upgrade
问题
pip: command not found
解决办法
yum -y install python-pip
问题
<module 'OpenSSL.crypto' from '/usr/lib64/python2.7/site-packages/OpenSSL/crypto.so'>
<module 'OpenSSL.crypto' from '/usr/lib64/python2.7/site-packages/OpenSSL/crypto.so'>
Traceback (most recent call last):
File "/bin/certbot", line 7, in
from certbot.main import main
File "/usr/lib/python2.7/site-packages/certbot/main.py", line 17, in
from certbot import client
File "/usr/lib/python2.7/site-packages/certbot/client.py", line 10, in
from acme import client as acme_client
File "/usr/lib/python2.7/site-packages/acme/client.py", line 31, in
requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3() # type: ignore
File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 112, in inject_into_urllib3
_validate_dependencies_met()
File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/contrib/pyopenssl.py", line 149, in _validate_dependencies_met
raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
解决办法
pip uninstall requests
yum reinstall python-requests
pip uninstall six
yum reinstall python-six
pip uninstall urllib3
yum reinstall python-urllib3
这样
certbot
就可以正常运行了。安装插件
检查插件
certbot plugins
默认有
apache
,standalone
,webroot
三个插件,再安装cloudflare
插件即可。pip install certbot-dns-cloudflare
配置cloudflare.ini文件
文件路径
~/.secrets/certbot/cloudflare.ini
,可以修改,修改后在稍后的命令中也要修改一下。文件配置内容如下
# Cloudflare API credentials used by Certbot
dns_cloudflare_email = cloudflare@example.com
dns_cloudflare_api_key = 0123456789abcdef0123456789abcdef01234567
api在页面的
API Key --> Global API Key
获取。修改文件权限
chmod 600 ~/.secrets/certbot/cloudflare.ini
生成证书
在生成证书之前,检查一下,至少有一个子域名和主域名要有解析,即至少有两个解析,否则会报错。
certbot -a dns-cloudflare -i apache -d "*.exmple.com" -d exmple.com --server https://acme-v02.api.letsencrypt.org/directory
命令执行完成之后,cerbot会自动帮助配置apache服务器证书,如果没有apache服务或者其它问题,也会有相应的报错,忽视即可。
重新生成证书
certbot renew --dry-run
自动生成证书
添加任务
corn -e
添加如下内容
0 2 * * 1 python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
重启corn
service crond restart
评论
发表评论