はじめに:
HTTPプロトコルは、無料のSSL証明書、またはそれ以上の主流の道のために適用されますが、次第に一部のブラウザは自己署名証明書をサポートしていません取得します。結局のところ、これはユーザーのためのプラットフォームであり、安全な方法となっている、それは理解できるが、しかし、多くのウェブサイトでもまた、あなたのサイトの無料のSSL証明書を申請することができ、市販の支払証明書を使用せずにあります。したがって、この参照のみ、レコードなどのアプローチか、一部の古いバージョンや個々のブラウザでこの自己署名証明書のhttpsを使用することができます。
本体:
あなたがリバースプロキシとしてnginxのを使用する場合は、この記事では、どのようにHTTPSのnginxで設定する方法を教えることができるので、あなたのバックエンドサービスは、httpも問題ありません場合でも。
まず、私たちは、証明書が必要
以前、「書いたTomcatのHTTPSの設定(無料証明書)」ジェーンの本は(- 2の間に関連する多くの知識がまだある、内側に見える私のホームページに移動することができます見てみたい入れています、) nginxのを使用してPEM形式の証明書で証明書を、分類するために使用されて、我々はそれが開いている二つのファイル、1つのファイル.KEYの必要性であるスプリット、.CRTファイルです。
第二に、どのように自由な証明書を取得します
最初:あなたがWindowsユーザーであり、証明書のフォーマットの.keystoreがある場合
そして、あなたは、キーストアの証明書は、PEM証明書に変換するJKS2PFX変換ツールを使用することができ、操作の方法があり、:ツールのディレクトリにcdし、コマンドを実行します。
$ JKS2PFX <キーストアファイル> <キーストアのパスワード> <エイリアスエイリアス> <エクスポートファイル名>
第二:あなたは、LinuxやOSXシステムがある場合
- 秘密鍵は、実行、キー生成されます。
$ opensslのgenrsa -des3 -out server.keyの2048
二回することができ、同じを入力し、パスワードの入力を求めています
パスワードを入力
して、あなたはserver.keyのファイルを取得し
、このファイルを使用した後(またはAPI提供opensslコマンドを)頻繁にパスワードが必要な返すことがあり、パスワードを入力し、次のコマンドを使用することができます削除するには。:
$ opensslのRSA -in server.keyの-out server.keyの
- サーバ証明書の申請書類のserver.csrを作成し、実行します。
$ののopenssl reqを-new -key server.keyの-out server.csr
安全ではないとみなされるブラウザを満たさない場合は、記入しないことができCN、共通名、ホスト名を記入を埋める国名(あなたのURLの残りの部分のために、例えば。HTTPS:// ABCD / XXXX ....ここにあなたがABCDを埋めることができます) 、他は埋めることはできません。
- CA証明書を作成します。
$ opensslのREQを-new -key -x509 server.keyの-out ca.crt -days 3650
この時点で、あなたはca.crtの証明書を取得することができ、この証明書は、証明書の署名を所有するために使用されます。
- サーバ証明書をserver.crtの日から現在の10年間から作成されました:
$ opensslのX509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.keyの-CAcreateserial -outをserver.crt
- lsのフォルダは、あなたは合計生成された5つの文書を見ることができます:
ca.crt ca.srlをserver.crt server.csr server.keyの
をserver.crtとserver.keyのは、あなたのnginxのは、証明書ファイルが必要です。
第三に、設定するには、どのようにnginxの
- あなたのnginxの設定ファイルを開き、検索が443 HTTPSの設定、コメントを解除し、このコードまたは直接私に以下の設定をコピーを見つけました:
サーバー{
443を聞きます。
サーバー名はlocalhost。
上のSSL;
ssl_certificate /root/Lee/keys/server.crt;#は、証明書の場所を設定します
位置に配置されssl_certificate_key /root/Lee/keys/server.key;#キー
#ssl_client_certificate ca.crt;#相互認証
#相互認証、上#ssl_verify_client
ssl_session_timeout 5メートル。
ssl_protocolsのSSLv2のSSLv3 TLSv1の。
ssl_ciphers ALL:ADH:EXPORT56:RC4 + RSA:+ HIGH:+ MEDIUM:+ LOW:+ SSLv2の!:+ EXP。
ssl_prefer_server_ciphers上;
- ssl_certificateはをserver.crtパスを変更し、ssl_certificate_keyのserver.keyのパスが変更されました。
- nginxの-sリロードリロード設定
この時点で、nginxのは、デフォルトの443ポートhttpsを使用する準備ができています。