Centos7.0安装 Lets encrypt 的SSL证书
Centos7.0安装 Lets encrypt 的SSL证书
本文链接:https://blog.csdn.net/yangshuai518/article/details/99951202
1.安装Certbot
执行命令 sudo yum install certbot
如果出现下面类似错误:
Running transaction
Installing : python2-urllib3-1.16-1.el7.noarch 1/1
Error unpacking rpm package python2-urllib3-1.16-1.el7.noarch
error: unpacking of archive failed on file /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname: cpio: rename
Verifying : python2-urllib3-1.16-1.el7.noarch 1/1Failed:
python2-urllib3.noarch 0:1.16-1.el7
请执行下面命令
pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
yum install python-urllib3
yum install python-requests
然后重新执行: sudo yum install certbot
如果出现:
Installed:
certbot.noarch 0:0.36.0-1.el7Dependency Installed:
python-requests-toolbelt.noarch 0:0.8.0-1.el7 python2-acme.noarch 0:0.36.0-1.el7 python2-certbot.noarch 0:0.36.0-1.el7
python2-requests.noarch 0:2.6.0-0.el7
表示执行成功
2.有服务(例如nginx)占用了443端口,必须先停止
执行命令:certbot certonly --standalone -d www.xxx.com -m xxxx@xxx.com --agree-tos
-d 是你的域名 -m 后面是跟的是邮箱,建议填写真实邮箱。执行过程中要你输入Y or N? 一律输入y 然后回车。
等待一段时间会显示
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/www.xxxx.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/www.xxxx.com/privkey.pem
Your cert will expire on 2019-11-19. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
这样就生成成功了!
执行命令查看生成的密钥等:
ll /etc/letsencrypt/live/www.xxxx.com/
cert.pem -> ../../archive/www.xxxx.com/cert1.pem
chain.pem -> ../../archive/www.xxxx.com/chain1.pem
fullchain.pem -> ../../archive/www.xxxx.com/fullchain1.pem
privkey.pem -> ../../archive/www.xxxx.com/privkey1.pem
文件表示的意思:
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥
请保存下来,以备不时之需。
如果需要生成其他的二级域名,重复生成就行了,www.xxxx.com需改成 m.xxxx.com
3.生成nginx需要的dhparam
执行命令:
mkdir /etc/nginx/websites
openssl dhparam -out /etc/nginx/websites/dhparam4096.pem 4096
当然可以用2048,执行时间会短点,当然4096安全性高,websites可以自定义,自己方便就好。
4.创建SSL文件
cd /etc/nginx/websites
vim www.xxxx.com.ssl
下面内容复制进去,自己适当修改红色部分,蓝色部分后面有解释。
ssl on;
ssl_certificate /etc/letsencrypt/live/www.xxxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.xxxx.com/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/websites/dhparam4096.pem;
ssl_ciphers HIGH:!ADH:!MD5:!aNULL:!eNULL:!MEDIUM:!LOW:!EXP:!kEDH;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
复制上面代码的时间注意点,我复制的时间开头会掉一个s,变成 sl on;这样启动nginx的时间会报错。
5.配置nginx
server {
listen 80;
server_name *.xxxx.com;
rewrite ^ https://$server_name$request_uri;
}#PC网页端
server {
listen 443 ssl;
server_name www.xxxx.com;
include /etc/nginx/websites/www.xxxx.com.ssl;location / { try_files $uri @web_app; }
location @web_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_pass http://127.0.0.1:8080; #PCtomcat端口
}
}#移动端SSL
server {
listen 443 ssl;
server_name m.xxxx.com;
include /etc/nginx/websites/m.xxxx.com.ssl;location / { try_files $uri @m_app; }
location @m_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_pass http://127.0.0.1:8081;#移动端tomcat端口
}
}
6.nginx启动
cd /etc/nginx
nginx
如果出现 [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead 这个警告
请将第4步中蓝色部分的 ssl on 这行注释掉:#ssl on;
OK,你的网站可以https://访问了!!!!!!!!!!!!!!!!!!!
7.删除证书操作
在某些情况下如果需要删除证书,
certbot delete --cert-name www.xxxx.com
然后你需要从第3步重新开始。
8.更新证书
Let's Encrypt 证书只有 90 天有效期,而且如果更新证书,它只会更新30天内到期的证书。命令行:
/usr/bin/certbot renew --dry-run
当然我们可以做一个定时任务,每隔2个月更新下证书,早上5点01分进行执行,红色部分根据centos版本不同可能有所不同
01 5 * */2 * /usr/bin/certbot renew --post-hook "service nginx restart" --quiet >> /usr/local/task/cerbottask.log
--pre-hook
这个参数表示执行更新操作之前要做的事情
--post-hook
这个参数表示执行更新操作完成后要做的事情
然后启动定时任务
crontab certbot-auto-renew-cron
9.tomcat支持
由于本人使用的是spring boot带的tomcat,所有默认开启了ssl支持
如果你是自己单独使用的tomcat需要自己配置如下:
一、在 Connector 节点增加 proxyPort="443"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" proxyPort="443" />
二、添加如下 Value 节点
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto" />
Centos7.0安装 Lets encrypt 的SSL证书相关推荐
- 使用 Let's Encrypt 为 Zimbra-8.8.15 安装可信任的SSL证书
上一篇我们已经安装好了 Zimbra-8.8.15 ,但是登录网页版的时候会提示证书错误,在忽略证书错误以及25端口已经解封的情况下就已经可以正常的收发邮件了,但是一直提示证书错误很不友好,给人不安全 ...
- windows server使用 LetsEncrypt-Win-Simple来安装和使用用Let's Encrypt免费SSL证书
一.网站部署 LetsEncrypt-Win-Simple可以自动发现已经部署的网站供我们选择要生成证书的网站,而且还需要进行验证.所以在生成证书之前,确保网站已经部署好并可以正常访问. 二.生成证书 ...
- Django服务器安装ssl证书,Django网站(Apache部署)安装Let's Encrypt免费SSL证书
为什么要HTTPS 2018年2月8日,谷歌浏览器发布官方博客称,2018年7月发布的新版谷歌浏览器Chrome将把所有的HTTP网站标记为不安全.这项举措是为了促进网络安全,倡导更多网站使用HTTP ...
- Let‘s Encrypt免费SSL证书申请
摘要: Let's Encrypt作为一个公共且免费SSL,目前Let's Encrypt免费SSL证书默认是90天有效期,但是我们也可以到期自动续约. 参考搬砖内容: GitHub - acmesh ...
- wordpress个人博客申请Let’s Encrypt免费SSL证书
最近,在网上火透半边天的,非 Let's Encrypt 的免费SSL证书莫属了.Let's Encrypt 是一个将于2015年末推出的数字证书认证机构,将通过旨在消除当前手动创建和安装证书的复杂过 ...
- 利用Certbot工具快速给网站部署Let's Encrypt免费SSL证书
使用https证书的话,强制使用域名 很多商家也都提供免费证书,比如腾讯云提供免费一年GeoTrust DV SSL证书.Let's Encrypt永久免费但需要90天激活一次续约,当然如果要购买证书 ...
- 百度云:centos7.0+ 安装宝塔与ShopXO开源商城(从0搭建到部署上线) - 教程篇
全程高能:从0搭建到部署上线.配图文详解 百度云:centos7.0+ 安装宝塔与ShopXO开源商城 - 部署篇 安装前准备 · step: 相关截图: 去除安全隐患: 注意事项: 附:如何二级域名 ...
- 【Python】CentOs7 Python3安装Openssl以及解决ssl问题
[Python]CentOs7 Python3安装Openssl以及解决ssl问题 参考文章: (1)[Python]CentOs7 Python3安装Openssl以及解决ssl问题 (2)http ...
- 虚拟机CentOS7.0安装万能五笔的方法
虚拟机CentOS7.0安装万能五笔的方法 条件:windows 7, VWmare 10.0 , CentOS7.0 说明:安装万能五笔的方法很简单,就是把两个文件复制到指定的目录下,再重启ibus ...
最新文章
- parsing:NLP之chart parser句法分析器
- 带你100% 地了解 Redis 6.0 的客户端缓存
- [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(三) -- 安装confluence 6.6.1
- sklearn自学指南(part47)--主成分分析
- StroyBoard中UICollectionView中添加Header和footer
- php字符串与数字比较,PHP容易被忽略而出错陷阱 数字与字符串之间的比较
- 第50课 书香阁的座位数
- Android Launcher 应用开发
- Windows下打开.jar文件的方式
- cpu散片是什么意思?
- 如何快速使用计算机键盘,怎么使用电脑键盘快速打字
- js URL 地址参数格式化
- C#中TransactionScope的使用小结
- android用shape画虚线,怎么也不显示
- 干货·Doherty功放设计
- 一元导数与多元求导数总结
- 1003: 两个整数的四则运算 C语言
- 2020年IDA插件大赛:DynDataResolver夺冠
- 2019年度区块链安全复盘总结
- NotePad 打开文件 出现中文汉字乱码 解决办法
热门文章
- 插件开发 之 生成代码
- php 添加水印, 格式转换, 变换大小 Watermark, png2jpg, resize
- magento:getChildHtml() 与getChildChildHtml() 的用法,区别
- 后端技术栈入职培训感悟
- 解决`向github提交代码是老要输入用户名密码`
- 《C和指针》——宏中容易出现的错误
- 三维点云网络——PointNet论文解读
- linux 分卷解压
- C语言中Uint8_t数据类型
- 2022年有哪些值得学习的Java开源项目?这7个火爆了