使用tomcat发布网址配置https,需使用pfx格式或是JKS的证书,现在CA发布的证书只有cer格式,需先转化成pfx格式,下面是通过IIS进行申请CA证书及转化的步骤。
1.通过发布网址的服务器IIS生成申请CA证书需要文件
命令行输入:inetmgr 进入IIS管理器,选择“服务器证书”
点击“创建证书申请”
输入基本资料,点击下一步,保存 txt 到本地。
2.将生成的 txt 文件生成CA证书
(由国际承认的机构颁发,根据交费情况有不同的检验级别。自己创建不了,因为没人认可。不过也可以学习一下~)
推荐链接:自建CA生成证书详解_永远是少年啊的博客-CSDN博客_生成ca证书
3.把生成的证书导入到IIS中,选择cer证书文件(非base64)
4.通过IIS把cer证书转化为pfx证书,选择汇出证书生成pfx证书和记住汇出密码。申请CA证书的服务器必须和CA证书一致才能转化出PFX证书
5.把生成的pfx证书放在tomcat路径下,然后配置server.xml和web.xml
配置server.xml,网页通过80端口访问时强制转化为443端口,及设定证书相关信息,修改为如下设定
KeystoreFile -->pfx证书的路径
keystorePass-->汇出pfx证书时的密码
固定内容:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
keystoreFile="..."
keystoreType="PKCS12"
keystorePass="..."
clientAuth="false"
sslProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers='TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES'
/>
配置web.Xml,修改为访问网页时需进行证书验证
在最后增加如下设定:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
6. IIS配置设定
添加网站绑定
7.防火墙开通443 https端口
重启tomcat后测试网址,输入http会自动强制转化到https 且网页上使用凭证显示正常。
推荐阅读:
CA证书的生成https证书、转换格式、导出公钥私钥(.pem、.crt、.cer、.pfx)_小龙在山东的博客-CSDN博客_ca.pem
配置tomcat支持ssl_mixturer的博客-CSDN博客_tomcat 支持sm4