【问题标题】:Install SSL on Tomcat with certificate .cer使用证书 .cer 在 Tomcat 上安装 SSL
【发布时间】:2018-08-24 13:47:15
【问题描述】:

我的问题是是否可以仅使用 .cer 文件将 SSL 添加到安装了 Tomcat 7 的 Windows 服务器。

我有一个客户端在您的 ISS 应用程序中使用 SSL,当您需要在 ISS 服务器上安装 SSL 时,只需安装此 .cer 文件:但正如我使用 Tomcat 为它,我需要使用 HTTPS 保护该应用程序我要求提供证书,然后我发送了这个 .cer 文件。

我已经尝试生成 .JKS 文件并以某种方式将其添加到 Tomcat 中,但没有成功。例如:

keytool -import -alias root -keystore example.jks -trustcacerts -file certificate.cer

有了这个,我生成了 jks 文件并将其映射到 tomcat,它碰巧它不起作用。我知道 Tomcat 设置很好,因为我使用 genkey 进行了生成文件的测试,它返回给我一个 .keystore 文件并且它可以工作。

编辑:

server.xml 中的连接器:

    <Connector
       protocol="org.apache.coyote.http11.Http11NioProtocol"
       port="443" 
       maxThreads="200"
       scheme="https" 
       secure="true" 
       SSLEnabled="true"
       keystoreFile="C:/path/example.jks" 
       keystorePass="password"
       clientAuth="false"
       sslProtocol="TLS"
       keyAlias="root" />

我应该申请其他格式的证书吗?

有没有人经历过这个,你能给我一些提示吗?

谢谢。

【问题讨论】:

  • 根据这个question,将cer-certificate导入java密钥库的正确命令如下keytool -importcert -file certificate.cer -keystore keystore.jks -alias "Alias"
  • 嗨,我试过了,没有成功,我也有同样的问题。
  • 如果您希望 tomcat 通过 https 提供内容,您不仅需要证书,还需要私钥。私钥通常以 PEM 格式或 pfx 文件形式提供。
  • 请将您的 tomcat server.xml 添加到问题中以了解您的配置。
  • Dpr,我为添加连接器进行了编辑。

标签: java tomcat ssl


【解决方案1】:

回答您的问题:单个 CER 文件通常不足以在 Tomcat 或任何其他 Web-/应用程序服务器中正确配置 HTTPS 连接器。

不确定如何在 IIS 中进行配置,但您始终需要私钥/密钥才能使用 SSL。

基本上使用签名证书(非自签名)时的标准流程是这样的:

  1. 生成私钥/秘密密钥

    $ keytool -genkey -keystore tomcat.jks -alias tomcat -keyalg RSA -keystore tomcat.jks -dname "CN=<hostname>"
    
  2. 为此密钥生成证书签名请求

    $ keytool -certreq -keystore tomcat.jks -alias tomcat -file tomcat.csr 
    
  3. 此签名请求(CSR 文件)提交给签名机构,您将获得签名证书(CER 文件)作为回报

    $ keytool -gencert -keystore root-ca.jks -alias root -infile tomcat.csr -outfile tomcat.cer -rfc 
    
  4. 此证书与签名机构的证书一起导入您的密钥库

    $ keytool -import -keystore tomcat.jks -file my-root-ca.cer -trustcacerts -alias my-root-ca
    $ keytool -importcert -keystore tomcat.jks -alias tomcat -file tomcat.cer
    

现在tomcat.jks 文件可以在 Tomcat 中用作 HTTPS 连接器的密钥库。

没有关于您的certificate.cer 文件在问题中包含的信息。要使用 keytool 检查内容,您可以使用此命令

$ keytool -printcert -file certificate.cer

在我上面的示例中,输出如下所示:

Owner: CN=<hostname>
Issuer: CN=My-Root-CA, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
Serial number: 222f266a
Valid from: Sat Aug 25 12:41:01 CEST 2018 until: Fri Nov 23 11:41:01 CET 2018
...

如果需要,也许您可​​以将输出添加到您的问题中以获得更多帮助。

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 2017-11-22
    • 2016-12-24
    • 1970-01-01
    • 2017-03-18
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    相关资源
    最近更新 更多