站点启用HTTPS/SSL证书的配置过程

 

前言

Let's Encrypt 作为新的证书颁发机构,免费,自动,开放,这三点对于个人用户来说尤为重要。免费自不用说,自动更是免去了很多过程和麻烦。官网目前推荐的获取和安装方式是 certbot ,只需要简单运行一些命令并作一些配置即可。 #环境 centos,tomcat #前提


  1. 已经部署jdk环境变量
  2. 需要在域名指向的服务器上操作,不然会报找不到443端口啥的错误。
  3. 需要linux环境
  4. tomcat在运行状态(这个不太确认,并没有做非运行状态的测试。因为需要用到tomcat的root目录,所以认为是需要在运行状态的) #部署 ##获取Let's Encrypt

获取

   
        wget https://dl.eff.org/certbot-auto  
        ##设置为可执行
        chmod a+x certbot-auto  

执行自动部署

./certbot-auto

部署过程中会下载一大堆的依赖包,不需要紧张。。。(反正给我吓得半死)
这里注意下,在执行过程中,会卡在'Installing Python packages',等待很长时间都不动,最后忍不住ctrl+c了,试了几遍依然如此。搜索知道是pip下载源问题,大天朝你懂的。。。于是开始修改pip下载源。

vi ~/.pip/pip.conf
#如果文件不存在则创建
mkdir ~/.pip
vi pip.conf

在里面修改或写入下面内容

#阿里云
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com 

#腾讯云内网。(外网:http://mirrors.cloud.tencent.com/)
[global]
index-url = http://mirrors.tencentyun.com/pypi/simple
trusted-host = mirrors.tencentyun.com

重新执行自动部署

 ./certbot-auto 

重新部署依然会在'Installing Python packages'卡一会儿,但不会很久,五分钟以内吧。。。因为执行过程懒得等就开会去了,也没注意。
依赖包下载完后会进入交互界面,依次是: 填写邮箱、域名(多域名用空格或逗号隔开)、条款确认、验证域名所有权(这一步可以选择第一种方式,手动选择tomcat的root目录)
执行成功后会显示

Congratulations! Your certificate and chain have been saved at  
   /etc/letsencrypt/live/xxx.com/fullchain.pem. Your cert will
   expire on 2016-10-05. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot-auto again. To
   non-interactively renew *all* of your certificates, run
   "certbot-auto renew"

此时的生成的证书文件都已经在如下路径了

 /etc/letsencrypt
#主要用到的文件在
 /etc/letsencrypt/live/xxxxx.com

如果使用的nginx,则以下步骤不需要处理。直接将本步骤中生成的几个pem文件部署到nginx中即可。具体可参考本文最下面的第一个url. #生成.jks证书 这里说下,tomcat8.5.3已经支持直接部署pem文件,但是我用的是8.0.33.。。唉 ##准备工作

#创建临时文件夹
mkdir /mnt/web/letsTemp
#将上步骤中生成的两个pem文件拷贝过来
cp /etc/letsencrypt/live/yourDomain/fullchain.pem /mnt/web/letsTemp
cp /etc/letsencrypt/live/yourDomain/privkey.pem /mnt/web/letsTemp
#进入临时文件夹
cd /mnt/web/letsTemp

生成.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 -srcstoretype PKCS12 -srcstorepass yourPKCS12pass -alias tomcat

其中yourPKCS12pass 是上一步中设置的ssl证书密码,这里的yourKeyPass是要设置的keystore密码,可以与yourPKCS12pass一致,下面配置tomcat会用到。 ##使tomcat支持https

#进入tomcat安装目录的conf文件夹
cd ..../tomcat-8.0.33/conf
#编辑server.xml
vi server.xml

找到如下内容并取消其注释

添加或修改ssl支持

URIEncoding="UTF-8" maxThreads="150" SSLEnabled="true" 
scheme="https" secure="true" clientAuth="false" 
sslProtocol="TLS" 
keystoreFile="conf/MyDSKeyStore.jks" 
keystorePass="yourJKSpass" 
keyAlias="tomcat" 
keyPass="yourKeyPass"/>

说明:https默认端口是443,一般生产环境中会将上面的8443端口改为443. 修改后重启tomcat #验证

浏览器中访问
https://localhost:8443
#如果8443端口修改成了443,则访问
https://localhost

Jinming

95后典型金牛座,强迫症。

相关推荐

暂无评论

小程序 小程序
小程序