OpenSSLコマンド---s_server

5101 ワード

用途:
s_serverはopensslが提供するSSLサービスプログラムです.このプログラムを使用する前に、さまざまな証明書を生成する必要があります.このコマンドは、さまざまなブラウザのhttpsプロトコルサポートなどのsslクライアントをテストするために使用できます.
使用方法:
openssl s_server [-accept port] [-context id] [-verify depth] [-Verify depth] [-crl_check] [-crl_check_all] 
[-cert filename] [-certform DER|PEM] [-key filename] [-keyform DER|PEM] [-pass arg] [-dcert filename] 
[-dcertform DER|PEM ] [-dkey keyfile] [-dkeyform DER|PEM ] [-dpass arg] [-dhparam filename] 
[-name_curve arg][-nbio] [-nbio_test] [-crlf] [-debug] [-msg] [-state] [-CApath directory] [-CAfile filename] 
[-nocert] [-cipher cipherlist] [-quiet] [-no_tmp_rsa] [-ssl2] [-ssl3] [-tls1_1] [-tls1_2] [-tls1] [-dtls1] 
[-timeout] [-mtu] [-chain] [-no_ssl2][-no_ssl3] [-no_tls1] [-no_tls1_1] [-no_tls1_2] [-no_dhe] [-no_ecdhe]
[-bugs] [-hack] [-www] [-WWW] [-HTTP][-engine id] [-tlsextdebug] [-no_ticket] [-id_prefix arg] [-rand file(s)]

オプションの説明:
-accept port:傍受するTCPポート.デフォルトは4433です.
-context id:SSL contextのidを設定し、任意の値に設定できます.SSL contextはセッションIDのコンテキストです.このオプションを設定しなくてもいいです.デフォルトのものがあります.
-verify depth、-Verify depth:意味とs_クライアントのこのオプションは同じですが、クライアントの証明書を検証する必要があることを示します.サーバがclientの証明書検証を選択できることを覚えていませんか?-verifyはclientに証明書を要求することを示しますが、clientは証明書を送信しないことを選択することができます.-Verifyはclientの証明書検証が必要であることを示します.そうしないと握手に失敗します.
-crl_check、-crl_check_all:クライアントの証明書がCAの廃止リストにあるかどうかを確認します.CRL(s)は証明書ファイルにあります.crl_check_allは、すべてのCA証明書の廃止リストをチェックすることを示します.
-cert filename:使用する証明書ファイル名.ほとんどのサーバアルゴリズムスイートには証明書が必要であり、DSSアルゴリズムコンポーネントが証明書(DSA鍵を含む)を必要とするなど、証明書を必要とする公開鍵のタイプもあります.デフォルトでは./server.pem.
-certform DER|PEM:証明書のフォーマットで、一般的にDERまたはPEMです.デフォルトはPEMです.
-key filename:使用するプライベートキーファイル.指定されていない場合は、証明書ファイルが使用されます(証明書公開鍵値が使用されます).
-keyform DER|PEM:秘密鍵ファイルのフォーマット.一般的にDERまたはPEMです.デフォルトはPEMです.
-pass arg:秘密鍵保護パスワードソース.
-dcert filename、-dkey keyfile:追加の証明書ファイルとプライベートキーファイルを指定します.異なるcipherには、異なる証明書とプライベートキーファイルが必要です.この異なるcipherは主にcipherの中の非対称暗号化アルゴリズムが異なることを指す.例えばRSAベースのcipherはRSAの秘密鍵ファイルと証明書を必要とし、DSAベースのアルゴリズムはDSAの秘密鍵ファイルと証明書を必要とする.このoptionは,このように我々のserverが2つのアルゴリズムを同時にサポートするcipherを可能にすることができる.
-dcertform DER|PEM:証明書を添付するフォーマットで、一般的にDERまたはPEMです.デフォルトはPEMです.
-dkeyform DER|PEM:追加の秘密鍵ファイルのフォーマットで、一般的にDERまたはPEMです.デフォルトはPEMです.
-dpass arg:秘密鍵保護パスワードソースを追加します.
-dhparam filename:使用するDHパラメータファイル名.設定されていない場合、serverは証明書ファイルからこれらのパラメータを取得しようとします.証明書にこのようなパラメータがない場合、hard codeのパラメータが呼び出されます.
-name_Curve arg:楕円曲線アルゴリズムの選択タイプ.
-nbio_test:非ブロックソケットのI/O動作を確認します.
-nbio:非ブロックsocketを使用します.
-crlf:端末で入力した改行を/r/nに変換して送ります.
-debug:すべてのデバッグ情報を印刷します.
-msg:すべてのプロトコルデータを16進数で表示します.
-state:SSLセッションのステータスを印刷します.sslもプロトコルです.もちろんステータスがあります.
-CApath directory:信頼CAファイルが存在するパスを設定します.このパスのcaファイル名は特殊な形式を採用しています:xxx.0、xxxはCA証明書所有者のハッシュ値であり、x 509-hashコマンドによって取得される.
-CA file filename:あるファイルは、あなたが信頼しているCAの証明書の内容です.クライアントの証明書チェーンを構築する場合も、このファイルを使用する必要があります.
-nocert:serverが証明書を使用したくない場合は、このオプションを設定します.現在、anonymous DHアルゴリズムだけが必要です.
-cipher cipherlist:serverによってどのアルゴリズムリストを使用するかは、私たち自身で決定されますが、私たちが送ったcipherリストの最初のcipherが一般的に採用されています.
-quiet:sessionheと証明書情報値の印刷を禁止します.
-no_tmp_rsa:現在のインタフェースcipherでは、一時的なRSAキーが使用される場合があります.すなわち,会話のたびに鍵ペアが一時的に生成される.このオプションは、このような状況を禁止するために使用されます.
-ssl2、-ssl3、-tls1_1、-tls1_2、-tls1、-dtls1、-no_ssl2、-no_ssl3、-no_tls1、-no_tls1_1、-no_tls1_2:使用するプロトコルのステータス値.
-no_dhe:このオプションが設定されている場合、DHパラメータが提供されていません.つまり、DHに関するciphersは使用できません.
-no_ecdhe:ECDHに関するciphersを使用できます.
-bugs:すべてのデバッグ情報を印刷します.
-hack:このオプションは、より古いNetscape SSLコードに実行可能なソリューションを提供します.
-www:clientが接続されたとき、SSL握手の内容のページに戻ります.
-HSTP、-WW:特定のファイルをウェブページとしてclientに返信するためのリクエストです.例えばクライアントのURLリクエストはhttps://myhost/page.htmlああ、そうだ./page.htmlはclientに返されます.-Engine id:ハードウェアエンジン.
-tlsextdebug:TLSプロトコルでサーバ側が受信した追加情報値を印刷します.
-no_ticket:RFC 4507 bisセッションタイプはサポートされていません.
-id_prefix arg:argの値に基づいてSSL/TLSのセッションIDsのプレフィックスを生成します.複数のサーバがある場合、SSL/TLSコードのテストに使用されることが多い.
-rand file(s):乱数シードファイルを指定し、複数のファイル間を区切り記号で区切り、windowsを「;」、OpenVMS用",",その他のシステム用":".
接続コマンド:
-www、-WWの2つのオプションは設定されていません.ssl clientが接続されると、送信されたものが表示され、端末で入力したものがclientに返されます.端末に入力された行の最初のアルファベットでいくつかの動作を制御することができます.
q:
現在の接続を中断するがserverを閉じない.
Q
現在の接続を中断し、プログラムを終了します.
r
renegotiate動作を行います.
R
renegotiate動作を行い、clientの証明書を要求します.
P
TCP層に直接いくつかの明文を送ります.これによりclientは、プロトコルのゲームルールに従って通信していないと判断して接続を切断します.
S
セッション-cacheのステータス情報を印刷します.session-cacheはプログラミングの章で詳しく紹介します.
注意:
BはSSLクライアントをデバッグするために使用することができる.Webブラウザから接続を受け入れるには、次のコマンドを実行します.
openssl s_server -accept 443 -www
このように使えます.
ほとんどのウェブ(NetscapeおよびMSIEを除く)は、RSAアルゴリズムスイートのみをサポートします.したがって、RSA形式でない証明書を使用すると、サーバに接続できません.
空のCAリストを指定しても、クライアント証明書を要求するときにその深刻なプロトコル基準違反を敬愛し、一部のSSLクライアントはCAが受け入れられると説明しています.これは証明書のデバッグに非常に有効です.
使用するセッションパラメータは、Bコマンドを使用して印刷できます.
BUGs:
このプロジェクトには多くの選択肢があるので、古い技術、cコードのs_を多く使っています.クライアントはなぜ閉じられたのかを読み取るのが難しい.典型的なSSLクライアントプロジェクトはより簡単になります.
通常のアルゴリズム出力はエラーです.OpenSSLが確認したクライアントがサポートするアルゴリズムスイートのリストだけが与えられます.
これは、クライアントがサポートする知られていないアルゴリズムスイートの詳細値を印刷する方法です.