所以我买了一个SSL证书,他们给了我这样的代码:
-----开始证书-----
编码字符串
-----结束证书-----
我之前已经保存了我的私钥,就像这样
-----开始私钥-----
编码字符串
-----结束私钥-----
我将这两个文件放在了两个单独的文件中(cert.txt和pk.txt)。
我已经使用这些Linux命令来安装我的证书。
1)openssl pkcs12 -export -in [cert.txt的路径] -inkey [pk.txt的路径] -certfile [cert.txt的路径] -out keystore.p12
2)keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -destkeystore finalkeystore.jks -deststoretype JKS
3)keytool -changealias -keystore [finalkeystore.jks的路径] -alias 1
这3个命令成功运行!我在tomcat conf的server.xml文件中放置了以下代码。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
SSLEnabled="true"
connectionTimeout="20000"
maxThreads="250"
scheme="https" secure="true" clientAuth="false"
sslProtocol="TLS" keystoreFile="/home/finalkeystore.jks"
keyAlias="whatisetinthirdcommand"
keystorePass="mypass" />
此外,我在项目中的web.xml文件中设置了下面的代码行!
<security-constraint>
<web-resource-collection>
<web-resource-name>MyApplication</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
安装证书没有发现任何问题!但是当我启动tomcat并搜索我的网站时,它重定向到https://localhost! 我将transport-guarantee编辑为NONE,然后又回到了以前的状态(没有https的精细应用程序)!我的程序有什么问题吗?我做错了什么吗?
PS:我使用的是tomcat 8和JDK8