【问题标题】:How do I add a self signed openssl x509 certificate to Tomcat如何将自签名的 openssl x509 证书添加到 Tomcat
【发布时间】:2012-02-15 22:23:36
【问题描述】:

我创建了如下证书;

openssl req -nodes -new -text -out ~/server.req -keyout ~/server.key

openssl req -x509 -in ~/server.req -text -key ~/server.key -out ~/server.crt

我现在需要将它添加到 Tomcat 中,显然我不能使用

的 Tomcat 文档示例

openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name tomcat -CAfile serverCA.crt -caname root -chain

因为它是自签名的。那么如何将它添加到 Tomcat 中呢?

【问题讨论】:

  • Java 密码学的设计使其需要返回到受信任的 CA 的有效链。让 Java 接受自签名证书的唯一方法是将用于签署证书的根 CA 证书添加到 Java 的默认密钥库中的受信任证书列表中。几年前我就这样做了,这并不容易。不幸的是,我现在没有时间找到我的旧笔记。我希望其他人可以提供详细信息。
  • 好的,我会看看我能找到与添加根 CA 证书相关的内容
  • @tojofo:这些证书是什么?你用一些CN创建并自签名的?

标签: tomcat openssl x509


【解决方案1】:

Tomcat 文档中提供的示例可以使用,您只需要创建自己的本地证书颁发机构来创建您的证书。

我发现这个教程过去很有用:http://gagravarr.org/writing/openssl-certs/ca.shtml

来自该页面的以下命令:

openssl genrsa -des3 -out CA.key <key_size>
openssl req -new -key CA.key -x509 -days 1095 -out ../certs/CA.crt

CA.crt 将是使用 -CAfile 标志创建证书时使用的位置

希望对您有所帮助。

【讨论】:

  • 我创建了 CA.crt 但是当尝试使用 Tomcat 文档中和上面列出的形式的命令添加时,我仍然得到; Error self signed certificate getting chain.
【解决方案2】:

我找到了我的旧笔记。

您不能使用自签名证书。你要做的就是走更长的路,生成一个“真正的”本地 CA,如下:

为 CA 生成私钥

openssl genrsa -out CA/cakey.pem -des3 2048

为根 CA 证书生成证书签名请求

openssl req -new -config openssl.cnf -key CA/cakey.pem -out CA/cacert.req

自签名 CA 证书

openssl x509 -req -in CA/cacert.req -extfile openssl.cnf \
    -extensions v3_ca -signkey CA/cakey.pem -out CA/cacert.pem -days 3650

为您的客户端生成包含 CA 证书的 Java 密钥库:

keytool -importcert -file CA/cacert.pem -keystore client.jks -storepass [password]

【讨论】:

  • 好吧,现在我已经设法将密钥放入其中,但在启动时我收到以下错误 java.io.IOException: jsse.invalid_ssl_conf 由 No available certificate or key corresponds to the SSL cipher suites which are enabled 引起 文档建议别名不正确,指定 keyAlias 无法解决它,也只有一个键,默认情况下它应该读取。我需要使用 AJP 连接器吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2016-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-26
相关资源
最近更新 更多