我想在我的tomcat 8服务器上启用或配置https,这需要我配置证书路径。我收到了.pem文件,如何使用这个.pem文件在tomcat上配置https?
答案 0 :(得分:2)
虽然大多数答案都集中在提出问题时支持的 Tomcat 7.0 和 8.0 版本,但自 8.5.2 版(2016 年 5 月)起,可以直接使用 PEM 文件,而无需转换为 PKCS12 文件。>
您可以:
conf/cert.pem
)并使用:<Connector port="443" SSLEnabled="true" secure="true" scheme="https">
<SSLHostConfig>
<Certificate certificateFile="conf/cert.pem" />
</SSLHostConfig>
</Connector>
强烈不鼓励将私钥和证书存储在同一个文件中。
conf/privkey.pem
中,将证书(按通常顺序)放在 conf/cert.pem
中并使用:<Connector port="443" SSLEnabled="true" secure="true" scheme="https">
<SSLHostConfig>
<Certificate certificateFile="conf/cert.pem"
certificateKeyFile="conf/privkey.pem" />
</SSLHostConfig>
</Connector>
conf/privkey.pem
为私钥,conf/cert.pem
为服务器证书,conf/chain.pem
为中间证书,使用:<Connector port="443" SSLEnabled="true" secure="true" scheme="https">
<SSLHostConfig>
<Certificate certificateFile="conf/cert.pem"
certificateKeyFile="conf/privkey.pem"
certificateChainFile="conf/chain.pem" />
</SSLHostConfig>
</Connector>
所有三种连接器类型都支持此配置:NIO
、NIO2
和 APR
。
答案 1 :(得分:0)
要在项目中启用https
,请按以下步骤操作:
1 - 转到JAVA_HOME
并运行以下命令:(您的java目录可能不同)
"C:\Program Files\Java\jre1.8.0_161\bin\keytool" -genkey -alias tomcat -keyalg RSA
-keystore \path\to\your\directory\keystore.exe
它会引导您完成一个过程,并会询问keystore.exe
的密码。请记住此密码。
2 - 在\path\to\your\directory
,您应该拥有keystore.exe
。
3 - 现在在apache tomcat's directory, open
server.xml`中并编写以下代码:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="9999" maxThreads="200" scheme="https" secure="true" SSLEnabled="true"
keystoreFile="PATH_TO_YOUR_DIRECTORY/cert1.keystore" keystorePass="YOUR_PASSSWORD_HERE"
clientAuth="false" sslProtocol="TLS" />
4 - 重新启动服务器并使用https
和端口9999打开您的项目。您现在可以在https
找到您的项目。
答案 2 :(得分:0)
如果证书颁发机构为您的域以PEM格式接收了包含Root,Intermediate和Primary证书的证书文件,则使用keytool命令行实用程序中的以下命令将证书文件导入Java Keystore:
"%JAVA_HOME%\bin\keytool” -import -trustcacerts -alias root -file RootCertFileName.crt -keystore keystore.key
"%JAVA_HOME%\bin\keytool” -import -trustcacerts -alias intermediate -file IntermediateCertFileName.crt -keystore keystore.key
"%JAVA_HOME%\bin\keytool” keytool -import -trustcacerts -alias tomcat -file PrimaryCertFileName.crt -keystore keystore.key
注意:如果您在创建密钥库期间未指定别名,则默认值为&#39; mykey&#39;。
执行命令成功后,您将拥有需要复制到主目录的.keystore文件。现在在文本编辑器中打开Tomcat配置文件(server.xml),找到元素端口为8443.指定keystoreFile和keystorePass,如下所示:
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<Connector
protocol="org.apache.coyote.http11.Http11AprProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
SSLCertificateFile="/usr/local/ssl/server.crt"
SSLCertificateKeyFile="/usr/local/ssl/server.pem"
SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>
并保存配置文件并重新启动服务器以使用.pem文件在Tomcat上启用SSL。
您可以按照帖子https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html中所述的说明在Tomcat 8服务器上启用SSL。