【Spring boot】使用Lets Encrypt 免费数字证书,全民SSL
2017-11-08 08:40
786 查看
其实https ssl 并没有什么卵用,即使是通过使用 https 数字证书后,服务器 和 客户端 双向的数据传输 依然不是绝对安全的(数据有方案可以截获明文,这里不过多阐述,比如伪造证书等),但很多人并不知道这点。
我个人是使用https ,仅因为 4点 1·流行 2·装X 3·浏览器上有个小绿标 好看 4·抵挡部分小菜鸟的抓包。
进入正题:
1·先根据 此教程 获取到证书:
https://github.com/xdtianyu/scripts/tree/master/le-dns
通过 DNS 验证方式获取 lets-encrypt 证书的快速脚本
脚本基于 letsencrypt.sh,通过调用 dns 服务商接口更新 TXT 记录用于认证,实现快速获取 lets-encrypt 证书。无需root权限,无需指定网站目录及DNS解析
cloudflare
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudflare.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudflare.conf
chmod +x le-cloudflare.sh
配置
cloudflare.conf 文件内容
CF_EMAIL="YOUR_API_KEY"
CF_EMAIL="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 CF_EMAIL 及 CF_EMAIL 为您的邮箱和 cloudflare api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-cloudflare.sh cloudflare.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudflare.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 2/20 * * /etc/nginx/le-cloudflare.sh /etc/nginx/le-cloudflare.conf >> /var/log/le-cloudflare.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/20 为 2,22。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
cloudxns
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudxns.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudxns.conf
chmod +x le-cloudxns.sh
配置
cloudxns.conf 文件内容
API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 API_KEY 及 SECRET_KEY 为您的 cloudxns api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-cloudxns.sh cloudxns.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudxns.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 2/20 * * /etc/nginx/le-cloudxns.sh /etc/nginx/le-cloudxns.conf >> /var/log/le-cloudxns.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/20 为 2,22。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
dnspod
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-dnspod.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/dnspod.conf
chmod +x le-dnspod.sh
配置
dnspod.conf 文件内容
TOKEN="YOUR_TOKEN_ID,YOUR_API_TOKEN"
RECORD_LINE="默认"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 TOKEN 为您的 dnspod api token ,注意格式为123456,556cxxxx。 修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-dnspod.sh dnspod.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的5号和25号)自动更新一次证书,可以在 le-dnspod.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 5/20 * * /etc/nginx/le-dnspod.sh /etc/nginx/le-dnspod.conf >> /var/log/le-dnspod.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 5/20 为 5,25。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
文件名 内容
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥
一般情况下fullchain.pem和privkey.pem就够用了
tomcat 配置:http://www.cnblogs.com/blog5277/p/6375473.html
spring boot application.properties配置
需要 把生成的pem文件转成jks文件格式
推荐使用 沃通转换证书的一个工具,请自行到沃通官网下载
转换步骤大概如下
我个人是使用https ,仅因为 4点 1·流行 2·装X 3·浏览器上有个小绿标 好看 4·抵挡部分小菜鸟的抓包。
进入正题:
1·先根据 此教程 获取到证书:
https://github.com/xdtianyu/scripts/tree/master/le-dns
通过 DNS 验证方式获取 lets-encrypt 证书的快速脚本
脚本基于 letsencrypt.sh,通过调用 dns 服务商接口更新 TXT 记录用于认证,实现快速获取 lets-encrypt 证书。无需root权限,无需指定网站目录及DNS解析
cloudflare
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudflare.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudflare.conf
chmod +x le-cloudflare.sh
配置
cloudflare.conf 文件内容
CF_EMAIL="YOUR_API_KEY"
CF_EMAIL="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 CF_EMAIL 及 CF_EMAIL 为您的邮箱和 cloudflare api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-cloudflare.sh cloudflare.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudflare.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 2/20 * * /etc/nginx/le-cloudflare.sh /etc/nginx/le-cloudflare.conf >> /var/log/le-cloudflare.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/20 为 2,22。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
cloudxns
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-cloudxns.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/cloudxns.conf
chmod +x le-cloudxns.sh
配置
cloudxns.conf 文件内容
API_KEY="YOUR_API_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 API_KEY 及 SECRET_KEY 为您的 cloudxns api key ,修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-cloudxns.sh cloudxns.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的2号和22号)自动更新一次证书,可以在 le-cloudxns.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 2/20 * * /etc/nginx/le-cloudxns.sh /etc/nginx/le-cloudxns.conf >> /var/log/le-cloudxns.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 2/20 为 2,22。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
dnspod
下载
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/le-dnspod.sh
wget https://github.com/xdtianyu/scripts/raw/master/le-dns/dnspod.conf
chmod +x le-dnspod.sh
配置
dnspod.conf 文件内容
TOKEN="YOUR_TOKEN_ID,YOUR_API_TOKEN"
RECORD_LINE="默认"
DOMAIN="example.com"
CERT_DOMAINS="example.com www.example.com im.example.com"
#ECC=TRUE
修改其中的 TOKEN 为您的 dnspod api token ,注意格式为123456,556cxxxx。 修改 DOMAIN 为你的根域名,修改 CERT_DOMAINS 为您要签的域名列表,需要 ECC 证书时请取消 #ECC=TRUE 的注释。
运行
./le-dnspod.sh dnspod.conf
最后生成的文件在当前目录的 certs 目录下
cron 定时任务
如果证书过期时间不少于30天, letsencrypt.sh 脚本会自动忽略更新,所以至少需要29天运行一次更新。
每隔20天(每个月的5号和25号)自动更新一次证书,可以在 le-dnspod.sh 脚本最后加入 service nginx reload等重新加载服务。
0 0 5/20 * * /etc/nginx/le-dnspod.sh /etc/nginx/le-dnspod.conf >> /var/log/le-dnspod.log 2>&1
注意 ubuntu 16.04 不能定义 day of month 含有开始天数的 step values,可以替换命令中的 5/20 为 5,25。
更详细的 crontab 参数请参考 crontab.guru 进行自定义
文件名 内容
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥
一般情况下fullchain.pem和privkey.pem就够用了
tomcat 配置:http://www.cnblogs.com/blog5277/p/6375473.html
spring boot application.properties配置
server.ssl.key-store=classpath:ssl/test.jks server.ssl.key-store-password= server.ssl.key-password=
需要 把生成的pem文件转成jks文件格式
推荐使用 沃通转换证书的一个工具,请自行到沃通官网下载
转换步骤大概如下
相关文章推荐
- Letsencrypt SSL免费证书申请(Docker)
- 使用 Let's Encrypt 签发免费SSL 证书
- 部署 使用 acme.sh 给 Nginx 安装 Let’ s Encrypt 提供的免费 SSL 证书
- 最便捷的免费 SSL 证书解决方案(实测start SSL、Let's Encrypt、七牛免费SSL证书)
- Let’s Encrypt 最近很火的免费SSL 使用教程
- 为微信小程序开发做准备,在Centos 6.8下利用letsencrypt.sh脚本为nginx 配置免费https证书
- 阿里数字证书 tomcat 配置ssl能在微信小程序上使用时 需要注意的几点
- Java Web学习总结(31)——全站HTTPS化SSL免费证书使用
- Let’s Encrypt 最近很火的免费SSL 使用教程
- How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)
- 使用let's encrypt代替阿里云免费证书
- 使用 Cerbot 部署 Let's Encrypt免费证书 简单 升级 http 到 https 申请单域名ssl证书
- 推荐一个免费申请ssl数字证书的地方
- let's Encrypt永久免费证书SSL配置HTTPS
- Https背景与证书在spring boot项目中的使用
- apache使用ssl数字证书
- 使用Let`s encrypt 免费的https 证书
- Lets Encrypt 最近很火的免费SSL 使用教程
- wildfly10.1 配置HTTPS(Lets Encrypt 免费获取SSL)
- 微信小程序免费HTTPS证书申请搭建教程(2)---安装SSL并使用HTTPS访问