新闻资讯
TOMCAT9.0 阿里云免费 SSL证书签发配置全过程(支持多证书,多虚拟主机)
一 申请证书
二 下载证书的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属性是主机的默认访问项目,也就是首页项目
回复列表