
GoDaddyから証明書を受け取り、JettyでSSLを有効にしようとしましたが、接続時にエラー107 SSLプロトコルエラーが発生します。https://server.com:8443
次のコマンドを使用してキーストアを生成しました:
keytool -keystore keystore -import -alias gd_bundle -trustcacerts -file gd_bundle.crt
keytool -keystore keystore -import -alias server.com -trustcacerts -file server.com.crt
そしてそれを/opt/jetty/etc/
そして、次の構成を使用しましたjetty.xml
:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg>
<New class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="keyStore"><SystemProperty name="jetty.home" default="."/>/etc/keystore</Set>
<Set name="keyStorePassword">**password1**</Set>
<Set name="keyManagerPassword">**password1**</Set>
<Set name="trustStore"><SystemProperty name="jetty.home" default="."/>/etc/keystore</Set>
<Set name="trustStorePassword">**password1**</Set>
</New>
</Arg>
<Set name="port">8443</Set>
<Set name="maxIdleTime">30000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
jetty の設定で何かが欠けているのでしょうか?
答え1
.crt ファイルをキーストア ファイルにロードし直すときは、キーストア エイリアスが同じである必要があると思います。私は基本的に、digicert 証明書を使用するのと同じことを行っています。.csr を生成し、結果を組み込むために使用したプロセスは次のとおりです。また、証明書の .p7b バージョンは、個々の .crt ファイルよりも扱いやすいと思います。これも役立つかもしれません。
キーペアとキーストアファイルを生成する
% keytool -genkey -alias server -keyalg RSA -keystore star_mydom_com.jks \
-dname "CN=*.mydom.com, O=<org>, L=<city>, ST=<state>, C=<country>"
.csr ファイルを生成する
% keytool -certreq -alias server -file star_mydom_com.csr -keystore star_mydom_com.jks
.p7b ファイルをキーストア ファイルにインポートする
% keytool -import -trustcacerts -alias server -file star_mydom_com.p7b \
-keystore star_mydom_com.jks
パスワードを難読化する
% JETTY_VER=8.1.10.v20130312
% JETTY_HOME=$HOME/jetty_ssl/jetty-hightide-$JETTY_VER
% java -cp $JETTY_HOME/lib/jetty-util-${JETTY_VER}.jar \
org.eclipse.jetty.util.security.Password jettyuser 'supersecretpassword'
supersecretpassword
OBF:1vny1yte1x8g1wml1yf21ym71sar1uuq1ym51t331ym91uvg1saj1ym71yf41wnl1x8e1yt81vn4
MD5:bbb2c5e63d2ef893106fdd0d797aa97a
CRYPT:je0/SbkypAbJA
etc/jetty-ssl.xmlにパスワードを追加する
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<!-- digicert -->
<New id="sslContextFactory" class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="KeyStore"><Property name="jetty.home" default="." />/etc/star_mydom_com.jks</Set>
<Set name="KeyStorePassword">OBF:1vny1yte1x8g1wml1yf21ym71sar1uuq1ym51t331ym91uvg1saj1ym71yf41wnl1x8e1yt81vn4</Set>
<Set name="KeyManagerPassword">OBF:1vny1yte1x8g1wml1yf21ym71sar1uuq1ym51t331ym91uvg1saj1ym71yf41wnl1x8e1yt81vn4</Set>
<Set name="TrustStore"><Property name="jetty.home" default="." />/etc/star_mydom_com.jks</Set>
<Set name="TrustStorePassword">OBF:1vny1yte1x8g1wml1yf21ym71sar1uuq1ym51t331ym91uvg1saj1ym71yf41wnl1x8e1yt81vn4</Set>
</New>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg><Ref id="sslContextFactory" /></Arg>
<Set name="Port">8443</Set>
<Set name="maxIdleTime">30000</Set>
<Set name="Acceptors">2</Set>
<Set name="AcceptQueueSize">100</Set>
<!--you can disable cipher suites in the following section. -->
<Set name="IncludeCipherSuites">
<Array type="java.lang.String">
<Item>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</Item>
<Item>SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA</Item>
<Item>TLS_RSA_WITH_AES_128_CBC_SHA</Item>
<Item>SSL_RSA_WITH_3DES_EDE_CBC_SHA</Item>
<Item>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</Item>
<Item>SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
</Configure>