그래서 모든 자바 (java 로 가져올 수 있는 애플리케이션을 자체 서명됩니다 나는한다 인증서 建立既能衡量 ssl 연결은 이 인증서를 신뢰할 수 있도록 노력하겠다.
지금까지 내가 그 가져오기할 관리됨
keytool -import -trustcacerts -noprompt -storepass changeit -alias $REMHOST -file $REMHOST.pem
keytool -import -trustcacerts -noprompt -keystore cacerts -storepass changeit -alias $REMHOST -file $REMHOST.pem
그래도 실행하려고 하면 때 ['하토프스클리앵 t.클레스'] (http://adywicaksono.wordpress.com/2007/07/15/ssl-connection-with-java/) 나 계속.
< pre> 자바스트네이슬레비시르한트셰익렉세페시옹:;; 손자세커티스발리다토리발리다토렉세페시옹: 프키스 삼중평균 구축되므로 못했습니다. 손자세커티스프로비데리스트패트릭손스트파스부일드렉세페시옹: 유효함 인증서까지 요청되었습니다 target< /pre> 경로를 찾을 수 없습니다;;
이미 사용하고 있는 웹 서버에서 SSL 인증서 다운로드할 수 있는 it 다음과 같습니다.
$ echo -n | openssl s_client -connect www.example.com:443 | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt
선택적으로 인증서 정보를 확인합니다.
$ openssl x509 -in /tmp/examplecert.crt -text
인증서 임포트하십시오 꽂으십시오 jave cacerts keystore:
$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
-storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt
편집:
요즘 우리가 알고 있는 경우가 있기 때문에, t # 39 로 인증서를 추가 don& keystore 공인인증서 얻을 수 있으며, 연간 5 만 달러 에서 ssls.com. 만일에 대비하는거야 that& # 39 에 옵션으로 선택할 수 있습니다.
이 작은 키 때문에 인증서를 추가하므로 스크립트입니다 됐지 내가 쓰는 것이 훨씬 간편하게 사용할 수 있습니다.
최신 버전 (https://github.com/ssbarnea/keytool-trust) 에서 구할 수 있습니다.
#!/bin/bash
# version 1.0
# https://github.com/ssbarnea/keytool-trust
REMHOST=$1
REMPORT=${2:-443}
KEYSTORE_PASS=changeit
KEYTOOL="sudo keytool"
# /etc/java-6-sun/security/cacerts
for CACERTS in /usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts \
/usr/lib/jvm/java-7-oracle/jre/lib/security/cacerts \
"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/cacerts" \
"/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/MacOS/itms/java/lib/security/cacerts"
do
if [ -e "$CACERTS" ]
then
echo --- Adding certs to $CACERTS
# FYI: the default keystore is located in ~/.keystore
if [ -z "$REMHOST" ]
then
echo "ERROR: Please specify the server name to import the certificatin from, eventually followed by the port number, if other than 443."
exit 1
fi
set -e
rm -f $REMHOST:$REMPORT.pem
if openssl s_client -connect $REMHOST:$REMPORT 1>/tmp/keytool_stdout 2>/tmp/output </dev/null
then
:
else
cat /tmp/keytool_stdout
cat /tmp/output
exit 1
fi
if sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' </tmp/keytool_stdout > /tmp/$REMHOST:$REMPORT.pem
then
:
else
echo "ERROR: Unable to extract the certificate from $REMHOST:$REMPORT ($?)"
cat /tmp/output
fi
if $KEYTOOL -list -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT >/dev/null
then
echo "Key of $REMHOST already found, skipping it."
else
$KEYTOOL -import -trustcacerts -noprompt -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -file /tmp/$REMHOST:$REMPORT.pem
fi
if $KEYTOOL -list -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -keystore "$CACERTS" >/dev/null
then
echo "Key of $REMHOST already found in cacerts, skipping it."
else
$KEYTOOL -import -trustcacerts -noprompt -keystore "$CACERTS" -storepass ${KEYSTORE_PASS} -alias $REMHOST:$REMPORT -file /tmp/$REMHOST:$REMPORT.pem
fi
fi
done
"'
인증 인증 기관이 사용하는 경우 서명됩니다 포함되지 않은 jave cacerts 파일 기본적으로 다음과 같은 구성을 완료해야 하는 HTTPS 연결. 인증서 agent. 가져오기할 cacerts:
, # 39 이것은 수정날짜 명령을 사용하여 you& 경우 시그윈 qopenmp 아래쪽에서 느낌이 들고, S. Botha& s" " # 39;; 대답:
때문에 이 경우 시그윈 you& 표시문,) 는 # 39, re 확증하노라 경로를 시그윈 비사양 프로그램 도왔으매 경로는 dos 와 같은 및 따옴표로.