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 でパズルゲームを実装する

推薦する

MySQLトランザクションとMySQLログの詳細な説明

取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...

Reactの状態の理解についての簡単な分析

複雑なコンポーネント (クラス コンポーネント) と単純なコンポーネント (関数コンポーネント) を...

JavaScript フロントエンドのタイムアウト非同期操作に最適なソリューション

目次コードの実行に長い時間がかかる場合はどうなりますか? Axiosにはタイムアウト処理機能が搭載さ...

CentOS 7 で Python を 3.6.6 にアップグレードした後に発生する yum エラー問題の解決方法の概要

最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...

Vueで配列の変更を監視する方法

目次序文ソースコード学習の第一歩はどこから始めればよいでしょうか?写真から始めましょうソースコードを...

MySQL インデックスの原理と使用例の分析

この記事では、例を使用して MySQL インデックスの原理と使用方法を説明します。ご参考までに、詳細...

10分でCSS3グリッドレイアウトを理解する

基本的な紹介前回の記事では、CSS3 のフレックスボックスを紹介しました。今日は、CSS3 のもう ...

Centos7.X Linux システムに tomcat8 をインストールするためのグラフィック チュートリアル

1. Tomcatのインストールパスを作成する mkdir /usr/local/tomcat 2....

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...

Vue3.0 手書き拡大鏡効果

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

Vue3 がデータ監視を実装するためにプロキシを使用する理由の分析

Vue データの双方向バインディング原則ですが、この方法には欠点があり、配列とオブジェクトの部分的な...

Linux システムファイル共有 samba 設定チュートリアル

目次sambaをアンインストールしてインストールする新しい共有パスを作成し、権限を設定するSamba...

Dockerfile を使用して Docker でイメージを構築する方法

イメージを構築するこれまで、テストやデモンストレーションにさまざまなイメージを使用しました。多くの場...

MySQL5.7.27-winx64 バージョン win10 のダウンロードとインストールのチュートリアル図

MySQL 5.7 のインストール私たちは学校で MySQL データベースを学んでいます。先生は私た...

Javascript と Vue を組み合わせて、あらゆる迷路画像の自動パス検索を実現します。

目次序文2次元配列、一方向基本インターフェースのマッピング幅優先、包括的検索マップ編集経路探索アルゴ...