Tôi có một máy chủ có chứng chỉ tự ký, nhưng cũng yêu cầu xác thực chứng chỉ phía máy khách. Tôi đang có một thời gian khó khăn cố gắng để có được các cert máy chủ CA thô vì vậy tôi có thể nhập nó vào một kho khóa. Bất cứ ai có một số gợi ý về cách dễ dàng làm điều đó? Cảm ơn.Keytool Java cách dễ dàng để thêm chứng chỉ máy chủ từ url/cổng
31
A
Trả lời
4
18
Có một vài cách tôi tìm thấy để làm điều này:
- Firefox: Thêm Exception -> Nhận Certificat -> View -> Details -> Export ...
- Keyman (http://www.alphaworks.ibm.com/tech/keyman) Bạn có thể nhận SSL cert trực tiếp từ file -> Import đơn
- InstallCert (Code by Andreas Sterbenz)
java InstallCert [host]:[port] keytool -exportcert -keystore jssecacerts -storepass changeit -file output.cert keytool -importcert -keystore [DESTINATION_KEYSTORE] -file output.cert
59
Đã xem xét cách tin tưởng chứng chỉ khi sử dụng jenkins cli và tìm thấy https://issues.jenkins-ci.org/browse/JENKINS-12629 có một số công thức cho điều đó.
này sẽ cung cấp cho bạn giấy chứng nhận:
openssl s_client -connect ${HOST}:${PORT} </dev/null
nếu bạn chỉ quan tâm đến phần chứng chỉ, cắt nó ra bằng đường ống nó để:
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
và chuyển hướng đến một tập tin:
> ${HOST}.cert
Sau đó, nhập bằng công cụ khóa:
keytool -import -noprompt -trustcacerts -alias ${HOST} -file ${HOST}.cert \
-keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS}
Trong một bước:
HOST=myhost.example.com
PORT=443
KEYSTOREFILE=dest_keystore
KEYSTOREPASS=changeme
# get the SSL certificate
openssl s_client -connect ${HOST}:${PORT} </dev/null \
| sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${HOST}.cert
# create a keystore and import certificate
keytool -import -noprompt -trustcacerts \
-alias ${HOST} -file ${HOST}.cert \
-keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS}
# verify we've got it.
keytool -list -v -keystore ${KEYSTOREFILE} -storepass ${KEYSTOREPASS} -alias ${HOST}
+0
Tôi có thể đặt HOST = *. Example.com không? –
Tôi đã sử dụng lớp InstallCert Andreas Sterbenz trước khi quá, hữu ích của nó nếu bạn cần một chứng chỉ cho một máy chủ mà không chấp nhận yêu cầu HTTP GET –
nhờ wuntee, nó giúp tôi rất nhiều, bởi vì tôi có cổ phần ở đây: http://stackoverflow.com/questions/9210514/unable-to-find-valid-certification-path-to-requested-target-error-even-after-c: D ty –