为什么需要SSL
防“钓鱼”、防止数据被篡改、信息加密、提高搜索排名,微信公众号、小程序开发必备!
Let’s Encrypt简介
Let’s Encrypt 是 一个叫 ISRG ( Internet Security Research Group ,互联网安全研究小组)的组织推出的免费安全证书计划。参与这个计划的组织和公司可以说是互联网顶顶重要的先驱,除了前文提到的三个牛气哄哄的发起单位外,后来又有思科(全球网络设备制造商执牛耳者)、 Akamai 加入,甚至连 Linux 基金会也加入了合作,这些大牌组织的加入保证了这个项目的可信度和可持续性。
Certbot 使用方法
Certbot 的官方网站是 https://certbot.eff.org/ ,打开这个链接选择自己使用的 web server 和操作系统,EFF 官方会给出详细的使用方法
开始安装https
假设运行环境为centos7.1,Web 服务器是 Nginx 1.12.0(因为我的生产环境是),当前工作目录为 /root
获取certbot客户端
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
停止 Tomcat服务,必须要停止服务
生成证书
./certbot-auto certonly --standalone --email `你的邮箱地址` -d `你的域名地址`
当前网站有多个域名时需在后面增加,例如
./certbot-auto certonly --standalone --email `你的邮箱地址` -d `你的域名`
查看生产的证书
tree /etc/letsencrypt/live/
将证书用于Tomcat
合成tomcat的证书,在 tomcat 底下创建一个文件夹用来存放准备生产的证书(当然也可以自己选择一个目录存放)我的目录是:/usr/local/tomcat/conf/LetsEncrypt ,
#进入申请证书的目录,这个目录会以第一个域名命名,不影响多域名使用。
cd /etc/letsencrypt/live/你的域名/
#复制到tomcat刚创建的证书目录下
cp fullchain.pem /usr/local/tomcat/conf/LetsEncrypt
cp privkey.pem /usr/local/tomcat/conf/LetsEncrypt
#进入到这个目录
cd /usr/local/tomcat/conf/LetsEncrypt/
#生成.p12文件
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat
这里会被要求设置密码,输入就行(下面用到的:yourPKCS12pass)
#生成.jks证书
keytool -importkeystore -deststorepass 'yourJKSpass' -destkeypass 'yourKeyPass' -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12
其中 yourPKCS12pass 是上一步中设置的ssl证书密码,这里的yourKeyPass是要设置的keystore密码,可以与yourPKCS12pass一致,下面配置tomcat会用到
配置tomcat
port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"keystoreFile="/usr/local/tomcat/conf/LetsEncrypt/MyDSKeyStore.jks" keystorePass="证书的密码"clientAuth="false" sslProtocol="TLS" />
证书续签
Let’s Encrypt 生成的免费证书为3个月时间,但是我们可以无限次续签证书
./certbot-auto renew
续签之后重新生成jks证书
总结
开发微信公众号以及微信小程序等应用都要求后端域名为HTTPS,个人开发者以及测试环境使用收费的SSL证书就很不划算了,因此免费的SSL证书可以说解决了很大一部分问题,该篇文同步博客更新,点击阅读全文即可查看