nginx ssl を設定して https アクセスを実装する手順 (初心者向け)

nginx ssl を設定して https アクセスを実装する手順 (初心者向け)

序文

サーバーを展開した後、私は大きな喜びを感じながら自分の Web サイトにアクセスし、見たものすべてに満足しました。しかし、興奮が冷めてくると、ブラウザの左上隅に「安全ではありません」というメッセージが表示されるのはなぜだろうと気付きました。考えた結果、いや、私もhttpsを設定してロックをかけようと思いました!

HTTP プロトコルはコンテンツをプレーンテキストで送信し、いかなる形式のデータ暗号化も提供しません。データ転送のセキュリティを確保するために、HTTPS は HTTP に基づく SSL プロトコルを追加します。SSL は証明書を使用してサーバーの ID を検証し、ブラウザーとサーバー間の通信を暗号化します。

証明書を申請する

ここでは、Tencent Cloudの無料証明書を直接申請します。ここで注意すべき点は、Asian Integrity Agency が発行する無料の証明書は 1 つのドメイン名にのみ使用でき、サブドメインは別途申請する必要があることです。ご存知のとおり、テンセントの申請プロセスは非常に迅速です。わずか 10 分強で承認されました。ダウンロードしたファイルはzipファイルです。解凍後、中のNginxフォルダを開き、1_XXX.com_bundle.crtファイルと2_XXX.com.keyファイルをコピーします。

nginx設定ファイルを開く

nginx ファイルの場所がわからない場合は、whereis nginx コマンドを使用して見つけることができます。

私の設定ファイルは /ect/nginx にあります。ここで 2 つの証明書ファイルをコピーし、直接設定します。 nginxの設定ファイルはnginx.confです。設定内容は以下のとおりです。分かりやすいようにコメントを付けておきました。

# デフォルトのユーザーは nginx なので、ユーザー nginx を設定する必要はありません。
#Nginx プロセス。通常は CPU コアと同じ数に設定されます。worker_processes 1;

#エラーログ保存ディレクトリ error_log /var/log/nginx/error.log warn;
#プロセス pid の保存場所 pid /var/run/nginx.pid;

イベント {
 worker_connections 1024; # 単一のバックグラウンドプロセスの最大同時接続数}

http {
 include /etc/nginx/mime.types; #ファイル拡張子とタイプのマッピングテーブル default_type application/octet-stream; #デフォルトのファイルタイプ #ログモードの設定 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
   '$status $body_bytes_sent "$http_referer" '
   '"$http_user_agent" "$http_x_forwarded_for"';

 access_log /var/log/nginx/access.log main; #nginx アクセス ログの保存場所 sendfile on; #効率的な送信モードを有効にする #tcp_nopush on; #ネットワーク セグメントの数を減らす keepalive_timeout 65; #接続を維持する時間 (タイムアウト時間とも呼ばれます) #gzip on; #gzip 圧縮を有効にする include /etc/nginx/conf.d/*.conf; #含まれるサブ構成項目の場所とファイル}

ちょっと見てみましょう。これがグローバル構成です。管理を改善するために、最後の行で宣言された /etc/nginx/conf.d フォルダー内のサブプロジェクトを引き続き構成します。

default.conf ファイルを開きます。

#仮想ホスト構成サーバーを設定する{
 # ポート 443 をリッスンします。これは SSL アクセス ポート listen 443 です。
 # アクセスに使用するドメイン名 server_name XXX.com を定義します。
 # サーバーのデフォルトの Web サイト ルート ディレクトリの場所を定義します。root /web/www/website/dist; 

 #この仮想ホストのアクセスログを設定します access_log logs/nginx.access.log main;

 # これらは Tencent Cloud が推奨する構成です。直接使用できます。証明書のパスを変更するだけです。これらのパスは /etc/nginx/nginx.conf ファイルの場所 ssl on を基準としていることに注意してください。
 ssl_certificate 1_XXX.com_bundle.crt;
 ssl_certificate_key 2_XXX.com.key;
 ssl_session_timeout 5分;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #このプロトコルに従って設定します ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; #このスイートに従って設定します ssl_prefer_server_ciphers on;

 #デフォルトのリクエスト場所 / { 
 ルート /web/www/website/dist; 
 #ホームページのインデックスファイルの名前を定義します index index.html;
 }

 #静的ファイル、nginx がそれを処理します location ~ ^/(images|javascript|js|css|flash|media|static)/ {
 #有効期限は 30 日です。静的ファイルはめったに更新されません。有効期限を長く設定することもできます。
 #頻繁に更新する場合は、小さく設定することもできます。
 有効期限は30日です。
 }

 #.htxxx ファイルへのアクセスを禁止する# location ~ /.ht {
 # すべて拒否;
 #}

}
サーバ
{
 # ポート 80 は http listen 80 の通常のアクセス インターフェイスです。
 サーバー名 XXX.com;
 # ここでは、httpsで完全な暗号化を行い、httpにアクセスすると自動的にhttpsにジャンプします。
 ^(.*) https://$host$1 を永久に書き換えます。
}

まあ、基本的にはこれですべての設定は完了です。とても簡単です。初心者のための福利厚生。

次に設定ファイルを書いてnginxでテストします

nginx -t

以上です。その後、nginx を再起動して有効にすることができます。

ここで注意すべき点は、新しい証明書をインポートした後は、リロードではなく再起動する必要があることです。nginx -s reload は通常の設定変更のリロードです。

# nginxを停止する
nginx -s 停止
# nginxを起動する

再起動後、もう一度自分のウェブサイトにアクセスしました。なんと、完璧でした。左上隅にロックが表示され、安全な接続であることが示されました。ああ、終わった、嬉しい。

Nginx 日常操作コマンド

  • nginx -t テスト設定ファイル
  • 変更後に設定を有効にするには、nginx -s reload を実行します。
  • nginx -s reopen でログファイルを再度開きます
  • nginx -s stop クイック停止
  • nginx -s 終了

nginx プロセスの表示

ps -ef | grep nginx

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • SSL モジュール構成を使用して HTTPS アクセスをサポートする nginx の詳細な説明
  • HTTPS アクセスを実現するための Nginx 構成 SSL 証明書の詳細な説明
  • nginx で SSL 証明書を設定して https サービスを実装する方法
  • SSL証明書を使用してnginxを構成し、httpsアクセスを実装する例
  • HTTPS ウェブサイトを展開するために SSL 証明書を使用して Nginx を構成する方法 (証明書の発行)
  • nginx 環境で SSL 暗号化を構成する (単一および双方向認証、部分的な https)
  • SSL モジュールを使用して nginx を HTTPS アクセスをサポートするように構成する方法
  • Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)
  • NginxはSSLを構成して、httpsのプロセス全体を実装します。

<<:  Macにmysql5.7.18をインストールする詳細な手順

>>:  js でパズルゲームを実装する

推薦する

CSSカウンター関連属性の学習の詳細な説明

CSS カウンター属性はほぼすべてのブラウザ (IE8 を含む) でサポートされていますが、あまり使...

Linux ディスク クォータ管理のグラフィカルな例

ディスク クォータは、コンピューター内の指定されたディスクのストレージ制限です。つまり、管理者はユー...

docker 環境でのデータベース バックアップ (postgresql、mysql) のサンプル コード

目次posgresql バックアップ/リストアMySQL バックアップ/復元posgresql バッ...

js のマクロタスクとマイクロタスクについての簡単な説明

目次1. JavaScriptについて2. JavaScript イベントループ3. マクロタスクと...

Dreamweaver8を使用してウェブサイトのファイルをチェックして整理する方法

Dreamweaver8 を使用して独自の Web サイトを作成する目的は何ですか?インターネットに...

W3C チュートリアル (7): W3C XSL アクティビティ

スタイル シートは、ドキュメントの表示方法、発音方法、または入力方法を記述します。XSL 言語は、X...

CocosCreatorでリストを作成する方法

CocosCreator バージョン: 2.3.4 Cocos には List コンポーネントがない...

Docker 基本チュートリアル: Dockerfile 構文の詳細な説明

序文Dockerfile は Docker プログラムによって解釈されるスクリプトです。Docker...

MySQL sql_modeクエリと設定の詳細な説明

1. SQLを実行して表示する @@session.sql_mode を選択します。 グローバルレベ...

Vue バックエンド管理システムのページング機能の実装例

この記事では、主に Vue バックグラウンド管理システムのページング機能の実装を紹介し、次のように共...

Vue グローバル フィルターの概念、注意事項、基本的な使用方法

目次1. フィルターの概念1. グローバルフィルターのフォーマットをカスタマイズする2. フィルター...

Vueは指定された日付間のカウントダウンを実装します

この記事では、指定された日付間のカウントダウンを実装するためのVueの具体的なコードを例として紹介し...

VMware WorkStation を Docker for Windows で使用するための詳細なチュートリアル

目次1. はじめに2. Windows用Dockerをインストールする1. Windows用Dock...

MySQLデータベースのリアルタイムバックアップの知識ポイントを詳しく解説

序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...