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

推薦する

jwtを使用してノードによって生成されたトークンをどこに保存するかについての簡単な説明

A: 通常はクライアントに保存されます。 jwt または JSON Web Token は、リクエス...

MySQL 派生テーブル(Derived Table)の簡単な使用例分析

この記事では、例を使用して、MySQL 派生テーブルの簡単な使用方法を説明します。ご参考までに、詳細...

MySQL セレクトキャッシュメカニズムの使用に関する詳細な説明

MySQL クエリ キャッシュはデフォルトでオンになっています。ある程度、クエリの効果は向上しますが...

Vue.jsのレンダリング関数の使い方の詳しい説明

Vue では、ほとんどの場合、テンプレートを使用して HTML を作成することを推奨しています。ただ...

Linux リダイレクトの使用方法の詳細な説明

誰でも時々データをコピーして貼り付ける必要があると思います。コピーして貼り付けるためにファイルを開く...

ウェブサイト製品設計の参考となるいくつかの原則

以下の分析は製品設計原則に関するものですが、そのほとんどはウェブサイト製品に基づいているため、ユーザ...

6秒でMySQLに100万件のレコードを挿入する方法を教えます

1. アイデアMySQL に 1,000,000 件のレコードを挿入するのにたった 6 秒しかかかり...

Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決す...

Vue + 要素を使用して背景データをオプションに動的に表示する

必要:ハードコードされたデータの代わりに、セレクター内のオプション値の動的な表示を実装します。私のロ...

WeChatアプレットが検索ボックス機能を実装

この記事の例では、WeChatアプレットの検索ボックス機能を実装するための具体的なコードを参考までに...

OpenSSL を使用した Kubernetes 証明書の生成の概要

Kubernetes は、基本認証、トークン認証、CA 認証の 3 種類の認証をサポートしています。...

Dockerの国内イメージソースを変更する方法

Dockerデーモンのアクセラレータを構成する設定ファイルから Docker を起動し、/etc/d...

openlayers6のマップオーバーレイの詳細な説明

1. オーバーレイの概要オーバーレイとは、その名の通り、別の形で地図上に表示される、覆うことを指しま...

JavaScript のアンチシェイクとスロットリングの違いと実装

目次1. 手ぶれ補正2. スロットリング3. まとめ序文:フロントエンド開発者には、次の 2 つの要...

Vue3 での watchEffect の使用に関する簡単な分析

序文誰もが vue2 の watch API に精通している必要があります。vue2 の vue イ...