欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

阿里云https证书tomcat配置方法

程序员文章站 2022-07-03 09:04:04
阅读本文前,请先参看前文 当我们使用java生成的证书使用https访问时会出现未认证的问题,证书风险 现在我们就申请一个阿里云云盾的免费证书 一、登录阿里云...

阅读本文前,请先参看前文

当我们使用java生成的证书使用https访问时会出现未认证的问题,证书风险

阿里云https证书tomcat配置方法

现在我们就申请一个阿里云云盾的免费证书

一、登录阿里云-->安全(云盾)-->证书服务->购买证书

阿里云https证书tomcat配置方法

在配置单中选择 "免费型dv ssl"   证书提供商品牌为:“赛门铁克” 注意:免费数字证书,最多保护一个明细子域名,不支持通配符,一个阿云帐户最多签发20张免费证书最后支付。

然后再点击查看

阿里云https证书tomcat配置方法

此时还未完成,需要点击补全信息,并填写相应信息。真实填写就可以了。包括:域名、姓名、邮箱等等。因为我的域名是托管到阿里云解析服务的,所以我的认证方式dns解析认证,并勾选了发送cname。填写完成后才是“待审核”状态,等待就可以了。

阿里云https证书tomcat配置方法

10分钟左右就会收到阿里云的邮件。邮件的内容:发送给你的 主机记录和记录值。

阿里云自动的去添加了一条cname记录

阿里云https证书tomcat配置方法

大概过半个多小时后证书状态会变成已签发

阿里云https证书tomcat配置方法

这个时候就可以点进去下载证书了。选择tomcat,支持2种方式:

tomcat支持jks格式证书,从tomcat7开始也支持pfx格式证书,两种证书格式任选其一,我使用的第一种方式。

文件说明:

1. 证书文件214068026470389.pem,包含两段内容,请不要删除任何一段内容。

2. 如果是证书系统创建的csr,还包含:证书私钥文件214068026470389.key、pfx格式证书文件214068026470389.pfx、pfx格式证书密码文件pfx-password.txt。

1、证书格式转换

在tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的csr文件,附件中只包含214068026470389.pem文件,还需要将私钥文件拷贝到cert目录,命名为214068026470389.key;如果是系统创建的csr,请直接到第2步。

到cert目录下执行如下命令完成pfx格式转换命令,此处要设置pfx证书密码,请牢记:

复制代码 代码如下:
openssl pkcs12 -export -out 214068026470389.pfx -inkey 214068026470389.key -in 214068026470389.pem

2、pfx证书安装

找到安装tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <connection port="8443" 标签,增加如下属性:

keystorefile="cert/214068026470389.pfx" 
keystoretype="pkcs12" 
#此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码 
keystorepass="证书密码" 

完整的配置如下,其中port属性根据实际情况修改:

<connector port="443" protocol="org.apache.coyote.http11.http11protocol" 
maxthreads="150" sslenabled="true" scheme="https" secure="true" 
keystorefile="cert/214068026470389.pfx" 
keystoretype="pkcs12" 
keystorepass="您的证书密码" 
clientauth="false" sslprotocol="tls" /> 

重启tomcat,用https访问成功

阿里云https证书tomcat配置方法

关于异常: connector attribute sslcertificatefile must be defined when using ssl with apr

tomcat提供了两个ssl实现,一个是jsse实现,另一个是apr实现。tomcat将自动选择使用哪个实现,即如果安装了apr则自动选择apr,否则选择jsse。如果不希望让tomcat自动选择,而是我们自己指定一个实现则可通过protocol定义,如下:apr文件名为tcnative-1.dll。6.x里没这个dll文件,而7.x里有。6.x没有,6.x默认使用jsse实现,而7.0默认使用apr实现。弄明白缘由就好办了。由于习惯使用6.0的配置方式(即jsee实现),因此只要把conf\server.xml里的protocol的值修改一下就行了:

protocol="org.apache.coyote.http11.http11protocol"

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。