之前一直都没有自己配置过https,刚好前段时间阿里云的客服打电话建议把项目从http升级到https,提高安全性。于是就到阿里云上申请一个免费的证书,今天刚好有空,就上去配置一下,本来以为很简单,没想到花了半天的时间,记录一下,供有需要的人借鉴一下,让别人少踩坑。
一. 准备工作
首先你需要一个域名及证书,这些我都是直接在阿里云上购买的,我使用的是免费的证书,购买域名及申请证书直接可以在阿里云上操作,步骤很简单我就不多啰嗦。证书申请成功后,你就可以下载使用,阿里云提供了Nginx,Apache,Tomcat等证书供下载,这里我下载并使用Tomcat证书。
我的服务器使用的是Centos7
和Tomcat8.5
,jdk最初使用的是openjdk1.8
,后修改为jdk.8
。
二. 安装证书
阿里云提供了安装说明,但是我根据说明没有安装成功,这也是我为什么要写本文的原因。
由于文档内容较多,加上有部分配置不需要使用,我只摘录部分我有用到的进行说明,以及需要修改的地方。
阿里云提供的安装说明(部分)
Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。
文件说明:
- 证书文件xxx.pem,包含两段内容,请不要删除任何一段内容。
- 如果是证书系统创建的CSR,还包含:证书私钥文件xxx.key、PFX格式证书文件xxx.pfx、PFX格式证书密码文件pfx-password.txt。
1、证书格式转换
在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含xxx.pem文件,还需要将私钥文件拷贝到cert目录,命名为xxx.key;如果是系统创建的CSR,请直接到第2步。到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记:
openssl pkcs12 -export -out xxx.pfx -inkey xxx.key -in xxx.pem
2、PFX证书安装
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port=”8443”标签,增加如下属性:
keystoreFile="cert/xxx.pfx"
keystoreType="PKCS12"
#此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码
keystorePass="证书密码"
完整的配置如下,其中port属性根据实际情况修改:
<Connector <