2012-02-15 52 views
0

我已经创建了我的证书,如下所示;如何向Tomcat添加一个自签名的openssl x509证书

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,显然我不能使用的

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

Tomcat的文档例子,因为它是自签名。那么我如何将它添加到Tomcat?

+0

Java加密的设计使其需要一个有效的链回到可信的CA.让Java接受自签名证书的唯一方法是将您用来将证书签名的根CA证书添加到Java默认密钥库中的可信证书列表中。我在几年前做过这件事,并不容易。不幸的是,我现在没有时间找到我的旧笔记。我希望别人能提供细节。 – 2012-02-15 22:38:32

+0

好吧,欢呼声我会看到我能找到的与添加根CA证书有关的信息 – tojofo 2012-02-15 23:10:04

+0

@tojofo:这些证书是什么?您是否用一些CN创建了它们并自签名? – Cratylus 2012-02-16 18:59:46

回答

0

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标志创建你的证书时,

希望有所帮助。

+0

我创建了CA.crt,但是当尝试添加使用Tomcat文档中的表单命令并在上面列出时,我仍然可以获得; '错误自签名证书获取链'。 – tojofo 2012-02-15 23:11:25

0

我发现了我的旧笔记。

您不能使用自签名证书。你所要做的就是去长的路线,并生成一个“真实”的地方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 

生成Java科ystore包含您的客户端的CA证书:

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

现在我已经设法得到那里的密钥,但在启动时,我得到以下错误:'java.io.IOException:jsse.invalid_ssl_conf'由'没有可用的证书或密钥导致对应于已启用的SSL密码套件文档提示不正确的别名,指定'keyAlias'不能解析它,也只有一个密钥,默认情况下它应该读取该密钥。我需要使用AJP连接器吗? – tojofo 2012-02-16 00:40:52