2011-09-21 9 views
3

TLS拡張機能、具体的にはサーバー名表示(SNI)をサポートするようにopenssl client-serverを構成したいと考えています。Openssl TLS拡張サポート構成(サーバー名表示)

追加の設定パラメータを与えずにubuntu linuxに最新のopenssl 1.0.0eをビルドしました。このバージョンのために構築している間、私は、追加の設定パラメータを与える必要がある場合はわからない

 
./config 
make 
make install 

私はサーバーをセットアップし、openssl、viz s_client、およびs_serverが提供する標準のコマンドラインツールを使用して、opensslクライアントを使用して接続しました。

私の質問は、どのようにs_clientの拡張機能として送信するホスト名を指定するのですか? opensslにはコマンドラインのいくつかのパラメータを使ってサーバ名を指定する手段がありますか?

ありがとうございます!

答えて

8

これは、しばらくの間休眠横たわっされています。私はこのことを長い間理解していたので、答えを書いてこれに閉鎖を付けるのが理にかなっています。

コマンドラインオプションservernameは、SNIを指定するために使用できます。

openssl s_client -connect myweb.address.com:443 -servername myweb.address.com 

上記のコマンドは、クライアントhelloのSNI拡張に存在する指定のサーバー名を持つTLSクライアントを起動します。このコマンドを使用することができますs_server使用するための

+0

を知っていますか? OpenSSL 1.0.0hには存在しないようです。 –

+0

'OpenSSL 0.9.8o 01 Jun 2010' – PravinCG

+0

私は間違っていました - あなたが 'openssl s_client -h'の出力を見ると分かるように、OpenSSL 1.0.0hは' -servername'をサポートしています。 s_Clientのマニュアルページには記載されていません。 –

2

関連するコマンドラインオプションは次のとおりです。

  • starttls prot:「Protは」仮定するかを定義し、それをサポートするプロトコルで、TLSを開始する前にSTARTTLSコマンドを使用します。現在、 "smtp"、 "pop3"、 "imap"、 "ftp"、 "xmpp"のみサポートされています。
  • servername host:設定TLS拡張サーバー名
3

opensslのs_server -accept 443 -cert normal_cert.pem -key normal_key.ky -servername xyz.com -cert2 sni_cert.pem -key2 sni_key.ky

ここで、クライアントがサーバー名拡張子を持たないサーバーを要求するたびに、サーバーはnormal_certで応答し、サーバー名拡張子がクライアントhelloの場合、サーバーはsni_certで応答します。 SNIとs_clientを使用するための

次のコマンドを使用することができます。

opensslのs_client -servername xyz.com -connect IPを:あなたは `-servername`引数を追加したのOpenSSLのバージョンポート

関連する問題