使用pem文件在tomcat上启用SSL

时间:2018-03-20 14:17:40

标签: tomcat ssl https

我想在我的tomcat 8服务器上启用或配置https,这需要我配置证书路径。我收到了.pem文件,如何使用这个.pem文件在tomcat上配置https?

3 个答案:

答案 0 :(得分:2)

虽然大多数答案都集中在提出问题时支持的 Tomcat 7.0 和 8.0 版本,但自 8.5.2 版(2016 年 5 月)起,可以直接使用 PEM 文件,而无需转换为 PKCS12 文件。

您可以:

  • 将 PEM 编码的私钥和所有证书按从叶到根的顺序放入一个文件中(假设 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>

所有三种连接器类型都支持此配置:NIONIO2APR

答案 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。