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

推薦する

Linuxドライバのプラットフォームバスの詳細説明

目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...

一般的なブラウザのユーザーエージェントの概要

1. 基礎知識: HTTP ヘッダー ユーザーエージェントユーザー エージェントは、ユーザー エージ...

Centos8 で Apache httpd2.4.37 を使用して Web サーバーをインストールする詳細な手順

ステップ 1: yum install httpd -y #httpd サービスをインストールします...

Docker で hyperf を開発する完全な使用例の詳細な説明

ハイパーフ公式サイトHyperf 公式ドキュメントのインストール1. Dockerの使用docker...

パーティクルダイナミックボタン効果を実現するCSS

オリジナルリンクhttps://github.com/XboxYan/no…ボタンは、おそらく We...

MySQL データベースは何をしますか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...

impress.js プレゼンテーション層フレームワーク (デモツール) - 初めての体験

半年もブログを書いていなかったので、少し恥ずかしいです... 正月休みは、Dota をプレイしたり ...

Mysql5.7.17 winx64.zip 解凍バージョンのインストールと設定のグラフィックチュートリアル

1. mysql-5.7.17-winx64.zip をダウンロードします。リンク: https:/...

Linux parted ディスク パーティション実装手順の分析

fdisk と比較すると、parted はあまり使用されず、主に 2T を超えるパーティションに使用...

MySQL killコマンドの実行原理の詳細な説明

目次キル命令実行原理命令実行特性クエリ実行の強制終了の原則接続終了の実装原則中断される可能性はありま...

Linux redis-Sentinel 設定の詳細

ダウンロードダウンロードアドレス: https://redis.io/download /usr/l...

Nginx ベースの HTTPS ウェブサイトを設定する手順

目次序文:暗号化アルゴリズム: 1. HTTPS の概要2. NginxはHTTPSウェブサイト設定...

Linux の Docker コンテナで bash を終了する 2 つの方法

bash を終了する場合は、次の 2 つのオプションがあります。最初のもの: Ctrl + d を押...

React で setInterval 関数を使用する例

この記事はWindows 10のシステム環境をベースに、Reactの学習と使用について説明しています...

ウェブページのFOUC問題によるウェブページの混乱の解決策

FOUC は Flash of Unstyled Content の略で、FOUC と略されます。簡...