如何在 Tomcat 中安装/更新/升级 SSL 证书

如何在 Tomcat 中安装/更新/升级 SSL 证书

我即将在具有以下配置的其中一台服务器中安装/更新/升级 SSL 证书

服务器信息:
服务器版本:Apache Tomcat/6.0.35
操作系统版本:Linux 2.6.18-371.6.1.el5
架构:amd64
JVM 版本:1.6.0_30-b30
JVM 供应商:Sun Microsystems Inc.
Tomcat 位置:/user/local/apache-tomcate-6.0.35

生成新的 SSL 证书请求:

  1. 我创建了一个名为 keystore 的文件夹(/user/local/apache-tomcate-6.0.35/keystore

  2. 要创建密钥:sudo keytool -storepass keypassword -keyalg RSA -keysize 2048 -keystore mydomain.keystore -genkey -alias mydomain

  3. 要创建 SSL 证书请求:sudo keytool -storepass keypassword -keystore mydomain.keystore -certreq -keyalg RSA -file mydomain.csr -alias mydomain.com

成功执行两个命令后,我得到了两个文件 keystore 文件夹

  • 我的域名.keystore
  • 我的域名.csr

我昨天收到的电子邮件中附加了以下文件:

  1. Cabundle.cert(这是什么?Wiki 中没有提及)
  2. 压缩文件
    a. mydomain.crt
    b. root_certificate.crt
    c. Trend_Micro_CA.crt
    d. Affirmtrust_Networking.crt

安装证书:

根据其他来源的信息,我将另外两个文件下载到了 keystore 文件夹中

  1. http://secure.globalsign.net/cacert/ct_root.der
  2. http://secure.globalsign.net/cacert/sureserverEDU.pem
  3. 导入根证书“ct_root.der”:

    [root@ mydomain keystore]# sudo keytool -keystore mydomain.keystore -storepass keypassword -importcert -file ct_root.der -trustcacerts -alias globalsignroot
    

    结果:

    Certificate already exists in system-wide CA keystore under alias 
    <3getcybertrustsolutionsincgtecybertrustglobal root>
    Do you still want to add it to your own keystore? [no]: yes
    Certificate was added to keystore
    
  4. 导入 sure server 教育证书 ‘sureserverDDU.pem’:

    [root@ mydomain keystore]# `sudo keytool -keystore mydomain.keystore –storepass keypassword -importcert -file sureserverEDU.pem -trustcacerts -alias sureserveredu`
    

    结果:证书已添加到密钥库

  5. 从电子邮件导入证书:根据 wiki,我需要导入 certificate.pem 文件 {{{ sudo keytool -keystore mydomain.keystore -storepass keypassword -alias mydomain -import -file mydomain.pem}}}。我收到的电子邮件中没有任何 .pem 文件,如果我运行 [root@ mydomain keystore]# sudo keytool -keystore mydomain.keystore -storepass keypassword -alias mydomain -import -file mydomain.crt

    我收到一个错误,

    Keytool error: java.lang.Exceptoin: Failed to establish chain from reply
    

问题:

这就是我陷入困境的地方,我不知道该怎么办,我想我必须创建一个 chain.pem,其中包含所有收到的证书。如果是这种情况,我应该按照什么顺序复制和粘贴证书?

说实话,我不想尝试任何我不确定的东西,因为它是一个实时服务器。

如果有人能帮助我/提供如何继续执行步骤 #5 以成功安装证书的说明,我将不胜感激。我也不清楚电子邮件中附带的 cabundle.crt 是什么。

答案1

笔记我省略了每个命令的“sudo”部分。

笔记出于安全原因,不建议将此类命令与该-password mypassword部件一起使用,因为它们可能会存储在您的命令历史文件中。

您的导入命令可能因 mydomain.crt 的输入格式而失败。请检查您是否拥有 PEM 或 DER 格式:

openssl x509 -in mydomain.crt -inform DER

如果失败,则可能已经是 PEM 格式,但如果没有,则该命令的输出就是必须输入 keytool 的内容,但您应该使用整个链。

Cabundle.cert可能已经让整个链条井然有序了。

grep CERTIFICATE Cabundle.cert

并检查是否有 2-4 个BEGIN CERTIFICATE-块END CERTIFICATE。如果是,请复制该文件并对其进行编辑,以删除有时在每个证书之前包含的与导入命令不一致的“包属性”。只需保留 BEGIN 和 END 行之间的乱码(包括它们)。如果没有,请构建您自己的链式文件,将这些块从您的证书、颁发者 CA 等串联到根 CA。

你的文件看起来应该像这样:

----BEGIN CERTIFICATE----
MIEooujfalsdlflasdl
....
----END CERTIFICATE----
----BEGIN CERTIFICATE----
MIEooujfalsdlflasdl
....
----END CERTIFICATE----
----BEGIN CERTIFICATE----
MIEooujfalsdlflasdl
....
----END CERTIFICATE----

对新文件重复上一个导入命令:

keytool -keystore mydomain.keystore -alias mydomain -import -file CertificateChain.pem

相关内容