Java 使用certificate.cer在Tomcat上安装SSL

Java 使用certificate.cer在Tomcat上安装SSL,java,tomcat,ssl,Java,Tomcat,Ssl,我的问题是,是否可以只使用.cer文件向安装了Tomcat 7的Windows服务器添加SSL 我有一个客户端,它在你的ISS应用程序中使用SSL,当你需要在ISS服务器上安装SSL时,只需安装这个.cer文件:但当我用Tomcat做应用程序时,我需要用HTTPS保护该应用程序,我请求了一个证书,并发送了这个.cer文件 我已经尝试过生成.JKS文件并以某种方式将其添加到Tomcat中,但没有成功。例: keytool -import -alias root -keystore example.

我的问题是,是否可以只使用.cer文件向安装了Tomcat 7的Windows服务器添加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" />

我是否应该以其他格式申请此证书

有人经历过这件事吗?你能至少给我一些提示吗


谢谢。

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

不确定这在IIS中是如何配置的,但始终需要私钥/密钥才能使用SSL

基本上,使用签名证书(非自签名)时的标准流程如下:

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
...
  • 生成私钥/密钥

    $ keytool -genkey -keystore tomcat.jks -alias tomcat -keyalg RSA -keystore tomcat.jks -dname "CN=<hostname>"
    
  • 此签名请求(CSR文件)将提交给签名机构,您将获得一个签名证书(CER文件)作为回报

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

    $ 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
    ...
    
    所有者:中国=
    发卡机构:CN=我的根CA,OU=未知,O=未知,L=未知,ST=未知,C=未知
    序列号:222f266a
    有效期:2018年8月25日星期六12:41:01 CEST至:2018年11月23日星期五11:41:01 CET
    ...
    

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

    根据此,将cer证书导入java密钥库的正确命令如下所示
    keytool-importcert-file certificate.cer-keystore keystore.jks-alias“alias”
    Hi,我尝试了,但没有成功,我也有同样的问题。如果你想让tomcat通过https提供内容,你不仅需要证书,还需要私钥。私钥通常以PEM格式或pfx文件提供。请将tomcat server.xml添加到问题中以了解您的配置。Dpr,我为添加连接器而编辑。