本站是根据大神左耳朵耗子博客配置 在此做个归纳,希望能帮到没有配置过的朋友
配置非常的简单:3步走
1. 首先打开电子子前哨基金会EFF的 Certbot的网站: certbot.eff.org/
2.进入首页后选择你所用的服务器软件,linux系统名称 如:nginx centos7
在下图的两个红色框中 选择软件系统
3.当你选好你的软件 和系统类型,网站会加载对应你的安装配置流程。比如我的:
SSH into the server 登录你的服务器
启用EPEL repo 开启点击这里,本人执行了安装命令行,即可!
安装 Certbot 本人一键成功 sudo yum install certbot python2-certbot-nginx
选择你喜欢的命令安装
sudo certbot --nginx
自动安装配置好https(推荐使用)sudo certbot certonly --nginx
只是获得证书,还需另行配置
sudo certbot --nginx
未一键安装成功,需要解决很多版本问题,包依赖问题,有以下命令:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install certbot python2-certbot-nginx
sudo certbot --nginx //安装失败
pip freeze|grep urllib3
pip uninstall urllib3
yum install python-urllib3
sudo certbot --nginx //安装失败
pip install requests
pip install --upgrade pip
sudo certbot --nginx //安装失败
pip install requests
sudo certbot --nginx //安装失败
pip install --upgrade pyOpenSSL
pip show pyOpenSSl
cd /usr/lib64/python2.7/site-packages/
ll | grep 'pyOpenSSL'
mv pyOpenSSL-0.13.1-py2.7.egg-info pyOpenSSL-0.13.1-py2.7.egg-info_bak
pip uninstall pyOpenSSL
mv pyOpenSSL-0.13.1-py2.7.egg-info pyOpenSSL-0.13.1-py2.7.egg-info_bak
pip install --upgrade pyOpenSSL
cd ~
sudo certbot --nginx //安装失败
pip install --upgrade --force-reinstall 'requests==2.6.0'
sudo certbot --nginx //最终成功
配置定时任务(原因:证书号只是90天有效,需要定时更行,这样才能永久使用)
网站推荐的有些看不懂,未使用
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
本人采用的耗子叔的方法,一个月更新一次处理一次就好
服务器执行:crontab -e
将下面的两行加入
0 0 1 * * /usr/bin/certbot renew --force-renewal
5 0 1 * * systemctl restart nginx
如果三个月发现没有自动执行命令失败 可能路径出错 找不Nginx插件执行 查询日志/var/log/cron
可知
SHELL=/bin/bash #crontab -e 文件首两行
PATH=/sbin:/bin:/usr/sbin:/usr/bin
开启 http2
建议配置 http2,这要求 Nginx 版本要大于 1.9.5。HTTP2 具有更快的 HTTPS 传输性能,非常值得开启
在Nginx.conf 将行 `listen 443 ssl; # managed by Certbot`
改成 `listen 443 ssl http2; # managed by Certbot` 即可
重启你的服务器systemctl restart nginx
,在浏览器打开你的网站,验证你的网站
如果失败可能原因有这些:a b c
a. 原有网站的链接 http:// 都需要改为 https:// 否则会本服务器block掉
b. 阿里云未开启 安全组端口,请前去查看开启443
端口路径:控制面板—–> ECS云服务器——>阿里云左上角选择服务器所在区,不然找不到实例—–>左侧栏 网络与安全—–>安全组—》配置规则(手动添加)
c. 你的linux系统,未开启防火墙通道443,会被拦截访问不通
- c1查看你的端口状态 : netstat -anp
- c2打开防火墙配置文件 :vim /etc/sysconfig/iptables (443端口行需要在REJECT 行之前)
- c3重启你的防火墙:service iptables restart 再次访问认证能成功