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

推薦する

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

MySQL で UTF-8 エンコーディングを使用しないのはなぜですか?

MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...

MySQLの遅いクエリ問題の詳細な分析データ送信

例を通して、MySQL のデータ テーブル送信のクエリが遅い問題の解決策を共有しました。最近、コード...

Bootstrap Webページレイアウトグリッドの実装

目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...

Nodejs がイントラネット侵入サービスを実装

目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...

MySQL データベースの鉄則 (要約)

適切なデータベース仕様は、ソフトウェア実装の複雑さを軽減し、通信コストを削減するのに役立ちます。この...

MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]

この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...

CentOS 8で自動更新を設定するための手順を完了する

データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...

CSS スタイルを HTML 外部スタイルシートにインポートする方法

リンクインスタイルとは、すべてのスタイルを 1 つ以上の外部スタイルシート ファイルに配置することで...

XHTML Web ページ チュートリアル

<br />この記事は主に、初心者にXHTMLの基本知識と、XHTMLとHTMLの違いを...

CSS3はテキストのレリーフ効果、彫刻効果、炎のテキストを実現します

この効果を実現するには、まず CSS のプロパティを知っておく必要があります。 text-shado...