Let’s Encrypt 作为新的证书颁发机构,免费,自动,开放,这三点对于个人用户来说尤为重要。免费自不用说,自动更是免去了很多过程和麻烦。官网目前推荐的获取和安装方式是 certbot ,只需要简单运行一些命令并作一些配置即可。
环境
- 阿里云服务器(我的是centOS)
- Tomcat
前提
- 系统中已经装好JDK
- 已经解析好域名
- 配置服务器中的安全组,开放80端口和443端口(Tomcat中的端口配置用到这两个端口)
- Tomcat可以正常运行,并且可以用解析好的域名访问
安装certbot
使用自动安装脚本
一、下载自动安装脚本
二、授予脚本执行权限
chmod a+x certbot-auto
三、执行脚本
./certbot-auto
执行这个脚本会自动下载安装依赖,中间需要输入几次“y”来确认下载操作,最后可能会卡在“Installing Python packages”
几分钟,不要终止操作让它安装完成!
申请ssl
一、
./certbot-auto certonly --standalone --email xxx@qq.com -d oumuv.xin
附上邮件和域名
执行脚本会弹出的两个选项 一个选择同意 A 另外一个选择 Y 就行。下图所示就是成功后的结果,可以看到生成的一个fullchain.pem和一个privkey.pem文件存放在/etc/letsencrypt/live/oumux.xin/中
二、
将文件复制出来,我就复制到Tomcat目录下:
cp fullchain.pem /usr/local/tomcat8/conf/letsencrypt
cp privkey.pem /usr/local/tomcat8/conf/letsencrypt
三、进入该目录下,执行命令生成.p12文件
此命令会要求输入一个密码,我这里就取“123456”
openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out fullchain_and_key.p12 -name tomcat
四、生成.jks证书
keytool -importkeystore -deststorepass 'yourJKSpass' -destkeypass 'yourKeyPass' -destkeystore MyDSKeyStore.jks -srckeystore fullchain_and_key.p12 srcstoretype PKCS12 -srcstorepass 'yourPKCS12pass' -alias tomcat
这里的yourPKCS12pass就是上一步中设置的密码,yourJKSpass密码和yourKeyPass也可以跟yourPKCS12pass一样
Tomcat配置
修改或增加配置:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
URIEncoding="UTF-8" maxThreads="150" SSLEnabled="true"
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS"
keystoreFile="/usr/local/tomcat8/conf/letsencrypt/MyDSKeyStore.jks"
keystorePass="123456"
keyAlias="tomcat"
keyPass="123456"/>
重启Tomcat,测试
直接访问https://oumuv.xin/成功进入Tomcat页面