新闻资讯

新闻资讯 行业动态

TOMCAT9.0 阿里云免费 SSL证书签发配置全过程(支持多证书,多虚拟主机)

编辑:009     时间:2020-02-06


一 申请证书

二 下载证书的Tomcat版本,如果你只需要配置一张证书的话,可以考虑按他下面说的去配置

特别提示,这个网页上写的那串数字,和你下载到的所有文件的文件名,都是同样的,这串数字是你的证书密码,千万不要向他人展示!!!!

下载下来的文件应该是3个,分别是.pem .pfx .key

我这次推荐给大家的是利用.pfx配置的,其他两个文件也能配置,也有用,但是相互间很混乱,详细了解的话可以去官网看文档

详细配置过程:

1)证书配置


<Connector port="443"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
maxThreads="150"
SSLEnabled="true">
<SSLHostConfig hostName="moyuge.net.cn" >
<Certificate 
certificateKeystoreFile="conf/ssl/*****.pfx"
certificateKeystorePassword="*****"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
<SSLHostConfig hostName="neuread.moyuge.net.cn" >
<Certificate 
certificateKeystoreFile="conf/ssl/*****.pfx"
certificateKeystorePassword="*****"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
<SSLHostConfig>
<Certificate 
certificateKeystoreFile="conf/ssl/*****.pfx"
certificateKeystorePassword="*****"
certificateKeystoreType="PKCS12" />
</SSLHostConfig>
</Connector>



把证书文件放到你的服务器上,任何位置都行,如果你采用复制我的代码,我是把证书文件放在conf文件夹中,新建了一个ssl文件夹

在 Connector 标签下配置 SSLHostConfig 标签,在SSLHostConfig 可以添加hostname属性和后文的 Host 配置对应

在SSLHostConfig 下配置 Certificate 标签 只需要写这3个属性 certificateKeystoreFile,certificateKeystorePassword,certificateKeystoreType,分别是 证书文件(.pfx结尾或者.keystore结尾),证书密码(直接复制密码串粘贴到双引号中就可以),证书类型,证书类型不要改变,按照我前面代码里写的PKCS12(如果文件是.keystore,那么不用写此项)

此部分特别提示:

一定不要把所有的Connector标签都写hostName属性,我的建议是留一条,也仅留一条不写hostName,系统会认定这条为default,如果没有这一条,tomcat对应ssl的那个自带的servlet会抛出异常,大致意思是没有找到[_default_]主机对用的SSLHostConfig,即使你有一条与后面的Host里配置的默认主机一致。

证书文件配置时候写的目录是你Tomcat所在的根目录,而不是conf文件夹,如果你像我一样,把证书文件放置在conf文件夹下的ssl文件夹中(ssl文件夹新建就行)

2)Host虚拟主机配置

应该是在Tomcat7.0版本开始的,Tomcat支持了多虚拟主机服务,这部分的配置如下
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="HomePage" />
</Host>
<Host name="moyuge.net.cn"  appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Alias>moyuge.net.cn</Alias>
<Alias>www.moyuge.net.cn</Alias>
<Context path="" docBase="HomePage" />
</Host>
<Host name="neuread.moyuge.net.cn"  appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Alias>neuread.moyuge.net.cn</Alias>
<Context path="" docBase="NeuRead" />
</Host>
</Engine>

Engine标签的defauleHost属性的意思就是下面有一条Host名与它的对应值相同,那一条是默认主机,在没有对应主机时候选择这一条。

Host标签,name是你的域名, appBase是你项目根目录,不同Host可以选择不同根目录,也可以同一个后面那两个属性保持不变就好

<Alias>标签中的是别名,也就是比如你配置了www.和was.两条解析(或者更多),但是他们的证书文件,访问文件夹都是一样的,就可以在Host上配置一个,下面用<Alias>写上其他几条域名

(这里主机名和别名似乎都不支持通配符,,不太清楚,文件里面Alias写多了,,但是不影响)

<Context>标签中docBase属性是主机的默认访问项目,也就是首页项目

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐