我即将在具有以下配置的其中一台服务器中安装/更新/升级 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 证书请求:
我创建了一个名为 keystore 的文件夹(
/user/local/apache-tomcate-6.0.35/keystore
)要创建密钥:
sudo keytool -storepass keypassword -keyalg RSA -keysize 2048 -keystore mydomain.keystore -genkey -alias mydomain
要创建 SSL 证书请求:
sudo keytool -storepass keypassword -keystore mydomain.keystore -certreq -keyalg RSA -file mydomain.csr -alias mydomain.com
成功执行两个命令后,我得到了两个文件 keystore 文件夹
- 我的域名.keystore
- 我的域名.csr
我昨天收到的电子邮件中附加了以下文件:
Cabundle.cert
(这是什么?Wiki 中没有提及)- 压缩文件
a.mydomain.crt
b.root_certificate.crt
c.Trend_Micro_CA.crt
d.Affirmtrust_Networking.crt
安装证书:
根据其他来源的信息,我将另外两个文件下载到了 keystore 文件夹中
- http://secure.globalsign.net/cacert/ct_root.der
- http://secure.globalsign.net/cacert/sureserverEDU.pem
导入根证书“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
导入 sure server 教育证书 ‘sureserverDDU.pem’:
[root@ mydomain keystore]# `sudo keytool -keystore mydomain.keystore –storepass keypassword -importcert -file sureserverEDU.pem -trustcacerts -alias sureserveredu`
结果:证书已添加到密钥库
从电子邮件导入证书:根据 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