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

推薦する

コネクタコンポーネントから Tomcat のスレッドモデルを見る - BIO モード (推奨)

Tomcat の上位バージョンでは、デフォルト モードは NIO モードを使用することになります。...

CentOS7仮想マシンで固定IPアドレスを設定する方法

私の開発環境は、VMWare 仮想マシンに CentOS をインストールし、ホスト ファイルにインタ...

Vueプロジェクトの支払い機能コードの詳細な説明

1. Alipay方式: Alipay メソッド: Alipay をクリックして支払い、バックエンド...

制限およびオフセット ページング シナリオを使用すると速度が遅くなるのはなぜですか?

質問から始めましょう5 年前、私が Tencent にいたとき、ページング シナリオでは MySQL...

MySQL の一般的な SQL ステートメントの概要

1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....

DockerプライベートイメージライブラリとAlibaba CloudオブジェクトストレージOSSの簡単な分析

Docker プライベートイメージライブラリDockerプライベートイメージライブラリとAlibab...

MySQL スロークエリ: スロークエリを有効にする

1. スロークエリの用途は何ですか? long_query_time を超えて実行されるすべての S...

ページのスクロールバーを無効にするには、overflow: hiddenを使用します。

コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...

Linux dateコマンドの知識ポイントのまとめ

使用法: date [オプション]... [+フォーマット]または: date [-u|--utc|...

Centos7.3 に mysql5.7.18 をインストールするための詳細なチュートリアル

1 Linuxディストリビューションのバージョンを確認する[root@typecodes ~]# c...

CocosCreator最適化DrawCallの詳細な説明

目次序文ドローコールとはDrawCall はパフォーマンスにどのような影響を与えますか?ドローコール...

vue+springbootでログイン認証コードを実現

この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...

VirtualBox は CentOS7 仮想マシンと拡張ツールをインストールします (画像とテキスト)

コンピュータシステム: win7この記事は主に写真に基づいており、多くの写真が含まれていますCent...

Docker コンテナは実行後に終了します (実行を継続する方法)

現象Dockerコンテナを起動する docker run –name [コンテナ名] [コンテナID...

Linux での sshd サービスとサービス管理コマンドの詳細な説明

sshd SSH は Secure Shell の略で、アプリケーション層のセキュリティ プロトコル...