2012-02-15 112 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