我已经使用keytool生成了一个SSL证书:
keytool -keystore keystore -alias mySite -genkey -keyalg RSA -keysize 2048
我得到了这个configuration和工作正常,但显然它不是由可信任的CA签署,所以我产生了一个CSR:
keytool -certreq -alias mySite -keystore keystore -file mySite.csr
GoDaddy给了我两个证书,我把它们导入到我的密钥库中:
keytool -keystore keystore -import -alias mySite.com -file mySite.com.crt keytool -keystore keystore -import -alias gd_bundle -file gd_bundle.crt
我认为这已经足够了,但是当我通过浏览器打开我的应用程序时,我仍然收到不可信的证书警告。 我错过了一个步骤? 我的应用程序在Jetty上运行,我提供的唯一configuration是密钥库和密钥密码。
我收到以下exception:
javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate
经过几个小时之后,我find了一个解决scheme。 我结束了使用openssl而不是keytool :
openssl genrsa -des3 -out mysite.key 2048 openssl req -new -key mysite.key -out mysite.csr
提交CSR,一旦你获得了证书:
openssl pkcs12 -export -chain -CAfile gd_bundle.crt -in mysite.com.crt -inkey mysite.key -out mysite.pkcs12 java -classpath jetty-util-6.1.26.jar:jetty-6.1.26.jar org.mortbay.jetty.security.PKCS12Import mysite.pkcs12 keystore
希望别人觉得这个有用!