2017-03-20 11 views
-1

私はビジネスサーバを持っています。私はjavaを使用して接続しようとしていますが、Tlsバージョンに1.1または1.2のいずれかを要求します。TLSv1.2または1.1を使用して自己署名付き証明書を生成する

私は自分のコンピュータにopensslをインストールしており、私はTlsバージョン1.1を使用しているようです。私は、私は、このコマンド

openssl s_client -host google.com -port 443

と私のopensslのインストールをテストし、これが

SSL-Session: 
    Protocol : TLSv1 
    Cipher : AES128-SHA 
    Session-ID: FFE6DD3F1F78EC17999809D875E12D5138573BE52BCAA2EB55225F2EFE864127 
    Session-ID-ctx: 
    Master-Key: 7599DC1A0FDC8BC41431D7907EE933BE7527D2A658ADFC6B34B2CAB3D071DD7E13B6ED2C7C35A6EABDCA52943B1155A2 
    Key-Arg : None 
    Start Time: 1489987373 
    Timeout : 300 (sec) 
    Verify return code: 20 (unable to get local issuer certificate) 

いくつかの情報は、読みやすさの目的のために残されている結果ですが、あなたのターミナルで試すことができます。

この私のJavaのバージョン

java version "1.8.0_121" 
Java(TM) SE Runtime Environment (build 1.8.0_121-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) 

は、どのように私はJavaのkeytoolはTlsバージョン1.1または1.2で証明書を生成することができますか?。

+2

TLSはデータセキュリティレイヤーであり、証明書プロパティーではありません。 https://en.wikipedia.org/wiki/Transport_Layer_Security あなたが探しているのは、 'SSLContext.getInstance(" TLSv1.2 ")' –

答えて

0

証明書は輸送手段にとって重要ではありません。

サーバー側で何を使用しているのかわからないと、何が最善の行動を取るべきかを判断するのが少し難しくなります。

tls 1.2を強制的に使用して、-tls1_2スイッチを渡すことができますが、これは本当に必要なものではありません。

したがって、Tomcat 8(およびAPR以外のHTTPコネクタ)を使用していたとすると、属性sslEnabledProtocols = "TLSv1.2"を使用してTLSv1.2だけを設定できます。

sslEnabledProtocolsは基本的にJavaのSSLSocket.setEnabledProtocols()メソッドに対応します。桟橋はおそらく同様の構成です。

Apache HTTPdまたはnginxを使用している場合は、それを行う方法も記載されたドキュメントがあります。

+0

"です。証明書はトランスポートの重要ではないはずです。したがって、t.l.s 1.2を使用して生成された公開鍵は、tls 1.0を使用する任意のマシンで動作しますか? –

+0

秘密鍵と自己署名付き証明書を生成するときは、転送アルゴリズムを指定する必要はありません。 –

関連する問題