暗号リストをOpenSSLに渡す方法s_client
プログラム?
これで単一の暗号を渡すことができます:
openssl s_client -cipher 'ECDHE-RSA-AES256-SHA' -connect www.google.com:443
しかし、複数の暗号のリストを渡す方法は?
OpenSSLのドキュメントには多くの情報が不足していますが、この部分は実際には十分に文書化されています。 s_clientのmanページ から:
-cipher暗号リスト
これにより、クライアントから送信された暗号リストを変更できます。サーバーは使用する暗号スイートを決定しますが、クライアントが送信したリストでサポートされている最初の暗号を使用する必要があります。詳細については、ciphersコマンドを参照してください。
また、前述の 暗号のドキュメント には、実際に暗号リストの形式、暗号文字列、および暗号スイート名に関する多くの詳細が記載されています。実際、ドキュメンテーションは非常に広範囲なので、この回答に含めるよりも、それを読む方がはるかに優れています there 。
Steffen Ullrichには 言及 があるため、暗号のlistを-cipher
オプションに渡すことができます s_client
。これは単一のアイテムではなく、仕様であり、nginx ssl_ciphers
オプション、またはApache SSLCipherSuite
オプションにも使用できます。
スペース、コンマ、またはコロン区切り文字を使用して、複数の暗号を渡すことができます。例:
openssl s_client -cipher ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384 \
-connect example.com:443
上記のリストは、2つの特定の暗号を指定しています。暗号のグループを渡すこともできます。以下は、認証済みの強調ECDH鍵合意(ECDH)、認証用のRSA、および「高」暗号化と見なされる暗号スイートのみを必要とする暗号リスト仕様の例です。
openssl s_client -cipher ECDH+aRSA+HIGH -connect example.com:443
これは何に拡張されますか? openssl ciphers
コマンドは、この目的で使用できます。
$ openssl ciphers ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA
より冗長に:
$ openssl ciphers -v ECDH+aRSA+HIGH
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA384
ECDHE-RSA-AES256-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(256) Mac=SHA1
ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
ECDHE-RSA-AES128-SHA SSLv3 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
ECDHE-RSA-DES-CBC3-SHA SSLv3 Kx=ECDH Au=RSA Enc=3DES(168) Mac=SHA1
詳細は ciphers
マニュアルページ をご覧ください。
これは、たとえば、構文はまったく同じです。 ApacheのSSLCipherSuite
構成設定、または多くの同様の構成スイッチ。リストの例:EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:!SSLv2:!SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
重要な文字に注意してください:
:
+
!