使用证书.cer在Tomcat上安装SSL

时间:2018-08-24 13:47:15

标签: java tomcat ssl

我的问题是,是否可以仅使用 .cer 文件向安装了Tomcat 7的Windows Server添加SSL。

我有一个客户端在使用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" />

我应该以其他格式请求此证书吗?

有人经历过这个吗,至少可以给我一些提示吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

要回答您的问题:单个CER文件通常不足以在Tomcat或任何其他Web- / Application-Server中正确配置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
...

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