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

推薦する

1分でVueが右クリックメニューを実装

目次レンダリングインストールコードの実装カスタムスタイル要約する効率的に要件を満たし、車輪の再発明を...

Nginx での Frp による https への強制リダイレクト設定の詳細な説明

自宅のルーターが300Mの帯域幅を80Mに強制的に減らしたため、3205Uソフトルーターを購入しまし...

MySqlはページクエリ機能を実装します

まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...

MySql カンマ連結文字列クエリの 2 つの方法

次の2つの関数は、 FIND_IN_SETと同じように使用されます。使用する場合、 FIND_IN_...

MySQL トランザクションの概念と使用法の詳細な説明

目次情事の概念取引の状態取引の役割取引の特徴トランザクション構文トランザクション対応ストレージエンジ...

JavaScript 配列 sort() メソッドの基本的な使い方と落とし穴

序文日常のコード開発では、配列のソートに関連する操作が多数あります。JavaScript では、so...

HTML でフォームを中央揃えにする

以前、写真が与えられ、その写真スタイルに基づいてフォームを作成するという課題に遭遇しました。しかし、...

Tomcat が IDEA のコンソールで文字化けを起こし、IDEA エンコーディングを UTF-8 に設定する方法

1. まず、TomcatログのエンコーディングとIdeaログ表示コンソールのエンコーディングを区別す...

CocosCreatorでスワイプした位置にテクスチャを表示する方法

目次1. プロジェクト要件2. 文書の内容3. プロジェクト例4. プロジェクトコード1. プロジェ...

10秒以内にMySQLデータベースに数百万件のレコードを挿入する実装

まず、次の質問について考えてみましょう。このような膨大な量のデータをデータベースに挿入するには、通常...

MySQLソースコマンドの使い方の紹介

目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

Windows Server 2019 で NAS を構成する方法

序文このチュートリアルでは最新バージョンをインストールします。 NAS は非常に安定して動作するので...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

MySQL ページングクエリ最適化テクニック

ページング クエリを使用するアプリケーションでは、LIMIT と OFFSET を含むクエリが非常に...