nginxのサーバーのSSL証明書
生成されたパス・キー
次のコマンドは、2048ビットのパス・キーを生成するために使用され、合格-passout:避けるために使用111111インタラクティブ入力されたパスワードを
[Tomcatの@ A02 TMP] $ opensslのgenrsa -aes256 -passout渡す:111111 -out server.pass.key 2048 RSA秘密鍵を生成、2048ビット長のモジュラス ........... +++ ... .................. +++ eは65537(0x10001)であります
キーを生成します
次のコマンドは、秘密鍵を生成するために使用され、合格-passin:111111を、キーを渡すインタラクティブ避けるために使用するパスワードに対応するパスワードです
[Tomcatの@ A02 TMP] $ opensslのRSA -passin渡す:111111 -in server.pass.key -out server.keyの 書き込みRSAキー
証明書署名要求ファイルを生成します(CSR)
次のコマンドは、必要がCNは、対応するドメインネームサーバを入力する必要があり、関連する情報機関に埋めるために、CSRファイルを生成するために使用される。最後に、チャレンジパスワードは、パスワードがCSRであります
[Tomcatの@ A02 TMP] $ののopenssl reqを-new -key -sha256 server.keyの-out server.csr あなたは組み込まれます情報を入力するように要求されようとしている 証明書要求にを。 あなたが入ろうとしていることは、識別名またはDNと呼ばれるものです。 そこかなりの数のフィールドがありますが、あなたには、いくつかの空白のままにしておくことができ 、デフォルトの値になりますが、いくつかのフィールドで ユーザーが入力した場合は「」、フィールドを空白のままになります。 ----- 国名(2文字コード)[XX]:CN 都道府県名(フルネーム)[]:北京 地域名(例えば、都市)[デフォルト市]:朝陽 組織名(例えば、会社)[デフォルトの企業株式会社]:HenSomeone 組織単位名(例えば、セクション)[]:iSomeone 共通名(例えば、自分の名前や、サーバーのホスト名)[]:internal.someone.com メールアドレス[]: 以下を入力してください「余分な」属性 証明書要求を送信するように []チャレンジパスワード:222222 オプション会社[]名前:
証明書を発行するCAサービスプロバイダにCSRファイルを送信します
あなたがCA SSL証明書サービスプロバイダを購入した場合は、この手順は、証明書ファイルを受け取った後、内容がserver.pemに書かれている。その上に、サービスプロバイダのCSRへ送られます
したがって、nginxの上に配置されました
サーバー{ 443を聞きます。 SERVER_NAME www.example.com; 上のSSL; ssl_certificate /path/to/ssl/server.pem; ssl_certificate_key /path/to/ssl/server.key; ssl_protocols TLSv1.2 TLSv1.1のTLSv1。 ssl_session_cache共有:ssl_www_example_com:5メートルを。 ssl_session_timeout 5メートル。 ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 :DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES256-SHA256 :DHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:DHE-RSA-AES128-SHA256:AND -RSA-AES128-SHA:ECDHE-DES、RSA、SHA-CBC3:ECDHE-ECDSA-SHA-DES-CBC3:EDH-RSA、DES、SHA-CBC3:AES256-GCM-SHA384、SHA256、AES256、AES256-SHA :AES128-GCM-SHA256、SHA256、AES128、AES128-SHA、SHA-DES-CBC3。 #... 位置/ { #... } #... }
自己署名証明書を作ります
あなたは、自己署名証明書を作成しようとしている場合は、以下の操作は、PEM証明書を生成しました
[Tomcatの@ A02 TMP] $のOpenSSL X509 -req -sha256 -days 3655 -in server.csr -signkey server.keyのアウトserver.pem 署名OK 被写体= / C = CN / ST =北京/ L =朝陽/ O = HenSomeone / OU = iSomeone / CN = internal.someone.com プライベートキーの取得
nginxのクライアント認証証明書
nginxのクライアント認証証明書とサーバーのSSL証明書は、実際にはサイドの検証証明書の顧客自身の生産を使用しているときには、CA署名証明書を使用してことができますが、問題ではありません。
サーバーの秘密鍵の生成
[Tomcatの@ A02 TMP] $ opensslのgenrsa -aes256 -passout渡す:201906 -out ca.pass.key 2048 RSA秘密鍵を生成、2048ビット長のモジュラス ................. .................................................. +++ ............................................ ... ..................... +++ eは65537(0x10001)である [Tomcatの@ A02 TMP] $ opensslのRSA合格-passin:201906 -in ca.pass.key -out ca.key RSA鍵を書きます
サーバ証明書の生成
次のコマンドは、nginxのに調製に使用されるサーバー証明書のca.pemを、生成されます。
[Tomcatの@ A02 TMP] $ののopenssl reqを-new -x509 -days 3655 -key ca.key -out ca.pem あなたが組み込まれることになる情報を入力するように要求されようとしている 証明書要求にを。 あなたが入ろうとしていることは、識別名またはDNと呼ばれるものです。 そこかなりの数のフィールドがありますが、あなたには、いくつかの空白のままにしておくことができ 、デフォルトの値になりますが、いくつかのフィールドで ユーザーが入力した場合は「」、フィールドを空白のままになります。 ----- 国名(2文字コード)[XX]:CN 都道府県名(フルネーム)[]:北京 地域名(例えば、都市)[デフォルト市]:朝陽 組織名(例えば、会社)[デフォルトの企業株式会社]:HenSomeone 組織単位名(例えば、セクション)[]:iSomeone 共通名(例えば、自分の名前や、サーバーのホスト名)[]:internal.someone.com メールアドレス[]:
クライアントの秘密鍵を生成します
[Tomcatの@ A02 TMP] $ opensslのgenrsa -aes256 -passout渡す:201906 -out client_01.pass.key 2048 RSA秘密鍵を生成、2048ビット長のモジュラス ................. +++ ......... ..... +++ eがある65537(0x10001) [Tomcatの@ A02 TMP] $ opensslのRSA -passin渡す:201906 -in client_01.pass.key -out client_01 .KEY RSAキーを書きます
クライアント証明書署名要求CSRを生成します
[Tomcatの@ A02 TMP] $ののopenssl reqを-new -key client_01.key -out client_01.csr あなたが組み込まれることになる情報を入力するように要求されようとしている 証明書要求にを。 あなたが入ろうとしていることは、識別名またはDNと呼ばれるものです。 そこかなりの数のフィールドがありますが、あなたには、いくつかの空白のままにしておくことができ 、デフォルトの値になりますが、いくつかのフィールドで ユーザーが入力した場合は「」、フィールドを空白のままになります。 ----- 国名(2文字コード)[XX]:CN 都道府県名(フルネーム)[]:北京 地域名(例えば、都市)[デフォルト市]:朝陽 組織名(例えば、会社)[デフォルトの企業株式会社]:HenSomeone 組織単位名(例えば、セクション)[]:スタッフ 共通名(例えば、自分の名前や、サーバーのホスト名)[]:スタッフの メールアドレス[]: 入力してください以下の「余分」は属性 証明書要求を送信します チャレンジパスワード[]:201907 オプションの会社名[]:
クライアント証明書を発行しました
次のコマンドは、クライアントのCSRは、サーバー証明書を生成するために発行された、サーバの秘密鍵とサーバ証明書を使用して。-set_serial 01のパラメータがあり、複数のクライアントが証明書を発行する場合は、この数は繰り返すことはできません
[Tomcatの@ A02 TMP] $のOpenSSL X509 -req -days 3655 -in client_01.csr -CA ca.pem -CAkey ca.key -set_serial 01アウトclient_01.pem 署名OK 被写体= / C = CN / ST =北京/ L =朝陽/ O = HenSomeone / OU =スタッフ/ CN =スタッフ の取得CA秘密鍵
クライアント証明書のフォーマット変換
以前に生成された証明書の形式は、直接一般的なアプリケーションのために使用することができない、アプリケーションは、所望に変換する必要があります
完全PEM:
[Tomcatの@ A02 TMP] $猫client_01.key client_01.pem ca.pem> client_01.full.pem
PFX - ここで入力した輸出のパスワードは、PFX証明書の申請をインポートするときにパスワードを入力する必要があります。
[Tomcatの@ A02 TMP] $ opensslのPKCS12 -export -out client_01.full.pfx -inkey client_01.key -in client_01.pem -certfile ca.pem エクスポートパスワードを入力します。 確認は、 -エクスポートパスワードを入力します。
クライアント認証証明書のnginxの構成
ssl_client_certificate /path/to/ca.pem; オプションssl_verify_client; #または`on`のあなたが必要な場合は、クライアントキー