openssl実行ファイルを使用して、コンソールに鍵とcsrを作成しました。 その後、私はCAにcsrを送り、証明書を取り戻しました。今私はそれをTomcatにインポートしたいと思います。Tomcatは中間証明書(https)を配信しません
だから、私は、キーと私の証明書のうちPKCS#12ファイル作成:
openssl pkcs12 -export -in mycert.cert -inkey mykey.pem -out key_and_cert.p12
をし、それを含むキーストアを作成しました:
keytool -importkeystore -deststorepass [password] -destkeystore keystore.jks -srckeystore key_and_cert.p12 -srcstoretype PKCS12 -srcstorepass [password]
それから私は、中間証明書チェーンをインポートします。 CRT:ここ
keytool -import -trustcacerts -alias root -file chain.crt -keystore keystore.jks
"のkeytool -keystoreたkeystore.jks -list" の出力:
Keystore-Typ: JKS
Keystore-Provider: SUN
Ihr Keystore enthält 2 Einträge.
root, 14.11.2011, trustedCertEntry,
Zertifikatsfingerabdruck (MD5): [fingerprint]
1, 14.11.2011, PrivateKeyEntry,
Zertifikatsfingerabdruck (MD5): [fingerprint]
Tomcatのserver.xmlには含まれています。私はTomcatを再起動すると
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" URIEncoding="UTF-8" compression="on"
sslProtocol="TLS"
keystoreFile="/[absolute-path]/keystore.jks"
keystorePass="[password]" />
、それはcatalina.outにエラーをログに記録していない、すべてがOKのようです。 しかし、私は、Firefoxを実行すると、それが実行
[domain] uses an invalid security certificate.
The certificate is not trusted because no issuer chain was provided.
(Error code: sec_error_unknown_issuer)
"opensslのs_client -connect [ドメイン]:443 -showcertsは" 報告私はTomcatは、それが中間証明書を提供していないと思います
CONNECTED(00000003)
depth=0 C = DE, OU = Domain Control Validated, CN = [domain]
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 C = DE, OU = Domain Control Validated, CN = [domain]
verify error:num=27:certificate not trusted
verify return:1
depth=0 C = DE, OU = Domain Control Validated, CN = [domain]
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/C=DE/OU=Domain Control Validated/CN=[domain]
i:/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
-----BEGIN CERTIFICATE-----
[certificate from mycert.cert]
-----END CERTIFICATE-----
---
Server certificate
subject=/C=DE/OU=Domain Control Validated/CN=[domain]
issuer=/C=BE/O=GlobalSign nv-sa/CN=GlobalSign Domain Validation CA - G2
---
No client certificate CA names sent
---
SSL handshake has read 1777 bytes and written 289 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : ECDHE-RSA-AES256-SHA
Session-ID: [session-id]
Session-ID-ctx:
Master-Key: [master-key]
Key-Arg : None
PSK identity: None
PSK identity hint: None
Start Time: 1321268519
Timeout : 7200 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
を返します。それを知っている。私は何ができますか?
追加情報: -importkeystoreコマンドはチェーンをチェックしないため、pkcs12証明書をインポートするときに証明書チェーンエラーは発生しません。私は中間証明書を最初にインポートしてから、-importkeystoreを呼び出そうとしました。私は同じ結果を得た。
編集: 私はちょうどPKCS#12証明書に直接チェーンを挿入することによって、別の方法を試してみましたが、次のエラーを取得:
$ openssl pkcs12 -export -CAfile chain.pem -in mycert.cert -inkey mykey.pem -out key_and_cert.p12 -name tomcat -chain
Error unable to get issuer certificate getting chain.
しかし、チェーン証明書はokです:
$ openssl verify chain.pem
chain.pem: OK
チェーンPEMにルートCAがありますか? – njzk2
あなたは "openssl verify -CAfile chain.pem mycert.cert"を与えますか? – njzk2