Nginx サーバーの https 設定方法の例

Nginx サーバーの https 設定方法の例

Linux: Linux バージョン 3.10.0-123.9.3.el7.x86_64

nginx: nginx/1.6.3

オープンSSL:1.0.1e

証明書を申請する

現在、インターネット上には、有効期間が数か月から数年に及ぶ無料の個人 SSL 証明書を提供している組織が数多く存在します。 StartSSL: https://www.startssl.com を例にとると、有効期間は申請が承認されてから 3 年間で、期限切れ後は無料で更新できます。

具体的な申請手続きも非常に簡単です。

登録してログインした後、「証明書ウィザード」>>「DV SSL 証明書」を選択して、無料の SSL 証明書を申請します。

電子メールでドメイン名を確認した後、自分のサーバーで SSL 証明書の CSR を生成します。入力したシークレットを覚えておいてください。これは後で必要になります。

openssl req -newkey rsa:2048 -keyout weizhimiao.cn.key -out weizhimiao.cn.csr

生成された証明書を/data/secret/などの指定されたディレクトリに配置します。証明書weizhimiao.csrの内容を確認し、その内容をページの証明書署名要求 (CSR) セクションにコピーして、ページを送信します。

生成された証明書をダウンロードし、対応する Web サーバー (Nginx、1_weizhimiao.cn_bundle.crt) を選択して、秘密キーと公開キーの両方を取得します。

  • 1_weizhimiao.cn_bundle.crt (公開鍵)
  • weizhimiao.cn.key (秘密鍵)

nginx の設定 (指定されたドメイン名に https を追加)

nginx.conf の現在の設定

...
http {
 ...
 /etc/nginx/conf.d/*.conf を含めます。

 サーバー{
  ...
 }
}

./conf.d/weizhimiao.cn.conf に追加

サーバ{
 443 ssl を聴く;
 サーバー名 weizhimiao.cn;

 ssl_certificate /data/secret/1_weizhimiao.cn_bundle.crt;
 ssl_certificate_key /data/secret/weizhimiao.cn.key;
 ssl_prefer_server_ciphers をオン;
 ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2;

 ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED';

 add_header Strict-Transport-Security 'max-age=31536000; プリロード';
 add_header X-Frame-Options DENY;
 ssl_session_cache 共有:SSL:10m;
 ssl_session_timeout 10分;
 キープアライブタイムアウト70;
 ssl_dhparam /data/secret/dhparam.pem;

 add_header X-Content-Type-Options nosniff;

 add_header X-Xss-保護 1;

 ルート /data/www/weizhimiao.cn;
 インデックス index.html;

 位置 / {

 }
}

注記:

構成では、PEM 形式のキー ファイルであり、TLS セッションで使用される/data/secret/dhparam.pemファイルが使用されます。 SSL のセキュリティを強化するために使用されます。このファイルメソッドを生成すると、

cd /データ/シークレット/
openssl dhparam 2048 -out dhparam.pem

元のアクセスをポート 80 にリダイレクトします。 ./conf.d/weizhimiao.cn.conf に追加

サーバ{
 聞く 80;
 サーバー名 weizhimiao.cn;
 301 https://weizhimiao.cn$request_uri を返します。
}

テスト

設定ファイルに構文エラーがないか確認してください。公開鍵を生成するときに入力したパスワードを入力する必要があります。

nginx -t
PEM パスフレーズを入力してください:
nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です
nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました

Nginx を再起動します (リロードは機能しないことに注意してください)

nginx -s 停止
PEM パスフレーズを入力してください:
nginx
PEM パスフレーズを入力してください:

ブラウザを使用してweizhimiao.cnにアクセスし、有効かどうかを確認します。

さらに、Nginx にセキュリティ証明書が設定されると、Nginx の再読み込み、停止、その他の操作ごとにパスワードを入力する必要があります。

復号化されたキー ファイルを生成して、元のキー ファイルを置き換えることができます。

cd /データ/シークレット/
openssl rsa -in weizhimiao.cn.key -out weizhimiao.cn.key.unsecure

weizhimiao.cn.conf内のweizhimiao.cn.keyファイルを置き換えます。

サーバー{
 ...
 ssl_certificate /data/secret/1_weizhimiao.cn_bundle.crt;
 ssl_certificate_key /data/secret/weizhimiao.cn.key.unsecure;
 ...
}

その後は、リロードするたびにパスワードを入力する必要はありません。

最後に、SSLLABS を使用してテストします。

結果

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装
  • nginx httpsリバースプロキシtomcatを実装する2つの方法
  • nginx サーバーの http を https にリダイレクトする正しい方法の詳細な説明
  • Nginx による https サーバー構築チュートリアル
  • Alibaba Cloud LINUXサーバーでのHTTPS(NGINX)設定の詳細な説明
  • Nginx で HTTPS サーバーを構築し、HTTPS アクセスを強制する方法
  • Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

<<:  MySQL 接続数を設定する方法 (接続数が多すぎる)

>>:  アコーディオン効果を実現するJavaScript

推薦する

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

Vueコンポーネントのルーティング強調表示問題の解決策

序文以前は、キャッシュを使用してルートを強調表示していました。すべてのルートをトラバースし、クリック...

Linux で jar パッケージを起動してバックグラウンドで実行する方法

jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...

Vue ログインページでクッキーを使用してパスワードを 7 日間記憶する方法

問題の説明プロジェクトのログインページでは、7日間パスワードを記憶する必要がある機能があります。この...

MySQL での GROUP_CONCAT の使用例の分析

この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...

js配列の基本的な使い方のまとめ

序文配列は特別な種類のオブジェクトです。 js には実際の配列はなく、オブジェクトを使用して配列をシ...

高さ:100% が機能しないのはなぜですか?

高さ:100% が機能しないのはなぜですか?この知識は不人気ではありませんが、使用する際には混乱する...

Linux におけるゼロコピー技術の使用に関する簡単な分析

この記事では、Linux におけるいくつかの主要なゼロコピー テクノロジと、ゼロコピー テクノロジを...

CentOS7 で yum ソースをインストールし、コマンド rz と sz をアップロードおよびダウンロードする方法 (画像付き)

** CentOS7 で yum ソースをインストールし、rz および sz コマンドをアップロー...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

Vue はカードフリップカルーセル表示を実装します

Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...

Lua モジュールを使用して WAF を実装する Nginx の原理の分析

目次1. WAFの背景2. WAFとは3. 動作原理4. WAF機能5. WAFと従来のファイアウォ...