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 winx64バージョンのインストール問題を解決する

MySQL は、スウェーデンの会社 MySQL AB によって開発されたオープンソースの小規模なリレ...

dockerでマウントされたディレクトリが読み書きできない問題を解決する

次のコマンドを使用してコンテナを作成し、ローカルの /home/dock/Downloads ディレ...

Windows での Apache+Tomcat7 負荷分散構成方法の詳細な説明

準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...

VUE+Express+MongoDBのフロントエンドとバックエンドの分離によるノートウォールの実現

付箋紙の壁シリーズを実現しようと思っています。シンプルなものはシンプル、複雑なものは多機能です。開発...

Mysqlサーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

1. 公式サイトからダウンロード: https://dev.mysql.com/downloads/...

ブラウザ内でHTMLタグを中央に配置するCSSスタイル

CSS スタイル:コードをコピーコードは次のとおりです。 <スタイル タイプ="te...

Vue でユーザー権限に基づいてルートを動的に追加する方法

ユーザーの権限に応じて異なるメニュー ページを表示します。知識ポイントルートガード(事前ガードを使用...

マウスを動かしたときにセカンダリメニューバーを実装するために HTML+CSS を使用する例

この記事では、マウスを動かしたときにセカンダリ メニュー バーを実装するために HTML+CSS を...

JavaScript で簡単なモグラ叩きゲームを実装する

この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

VUEはG2チャートを使用した実装を導入します

目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...

MySQL が暗黙のデフォルト値を処理する方法

何人かの学生は、マスターとスレーブの間の不一致の問題に遭遇したと述べました。一般的な状況としては、m...

CSSを使用して円形の波効果を実現する

モバイル デバイスでは、金額を表示するために円形の波グラフィックがよく使用されます。最初は、この効果...

MySQL トリガーの追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL トリガーの追加、削除、変更、およびクエリ操作について説明しま...

TypeScriptのインストールと使用方法と基本的なデータ型

最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...

MySQLのSeconds_Behind_Masterの詳細な説明

目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...