OpenSSL を使用して SSL キーと CSR ファイルを生成する HTTPS を設定するには、秘密鍵 example.key ファイルと証明書 example.crt ファイルが必要です。証明書ファイルを申請する場合は、example.csr ファイルが必要です。OpenSSL コマンドを使用すると、example.key ファイルと証明書 example.csr ファイルを生成できます。 CSR: 証明書署名要求。申請者の DN (識別名) と公開キー情報を含む証明書署名要求ファイル。サードパーティの証明機関が証明書に署名するときに提供する必要があります。 CSR を受け取った後、証明機関はルート証明書の秘密キーを使用して証明書を暗号化し、証明書の暗号化情報と申請者の DN および公開キー情報を含む CRT 証明書ファイルを生成します。 キー: 証明書申請者の秘密キー ファイル。証明書内の公開キーとペアで使用されます。HTTPS の「ハンドシェイク」通信プロセスでは、証明書の公開キーによって暗号化されたクライアントから送信された乱数情報を復号化するために秘密キーが必要です。これは、HTTPS 暗号化通信プロセスで非常に重要なファイルであり、HTTPS を構成するときに使用されます。 OpenSSl コマンドを使用して、システムの現在のディレクトリに example.key ファイルと example.csr ファイルを生成します。
上記コマンドの関連フィールドの意味は次のとおりです。
csr ファイルを生成したら、それを CA 組織に提供します。署名に成功すると、example.crt 証明書ファイルが取得されます。SSL 証明書ファイルを取得したら、Nginx 構成ファイルで HTTPS を構成できます。 HTTPSを構成する 基本設定 HTTPS サービスを有効にするには、構成ファイルの情報ブロック (サーバー ブロック) で、listen コマンドの ssl パラメータを使用し、次に示すようにサーバー証明書ファイルと秘密鍵ファイルを定義する必要があります。 サーバー{ #ssl パラメータ listen 443 ssl; サーバー名 example.com; #証明書ファイル ssl_certificate example.com.crt; #秘密鍵ファイル ssl_certificate_key example.com.key; ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; #... } 証明書ファイルは、サーバーに接続している各クライアントに公開エンティティとして送信されます。秘密鍵ファイルは、セキュリティ エンティティとして、特定の権限制限のあるディレクトリ ファイルに保存し、Nginx メイン プロセスにアクセス権があることを確認する必要があります。 次に示すように、秘密鍵ファイルは証明書ファイルと同じファイルに配置することもできます。
この場合、証明書ファイルの読み取り権限も制限する必要があります。これにより、証明書と秘密鍵が同じファイルに保存されていても、クライアントには証明書のみが送信されるようになります。 ssl_protocols コマンドと ssl_ciphers コマンドを使用すると、接続を SSL/TLS の拡張バージョンとアルゴリズムのみに制限できます。デフォルト値は次のとおりです。
これら 2 つのコマンドのデフォルト値は何度か変更されているため、DH アルゴリズムの定義など、定義する必要がある追加の値がない限り、明示的に定義することはお勧めしません。
HTTP を HTTPS に強制する また、サーバー ブロックを構成し、ポート 80 をリッスンし、書き換えを追加します。 サーバー{ 聞く 80; server_name サーバーのIP; ^(.*)$ https://$host$1 permanent を書き換えます。#http を https に強制します } サーバー構成リファレンス サーバー{ 聞く 80; server_name サーバーのIP; ^(.*)$ https://$host$1 permanent を書き換えます。#http を https に強制します } サーバー{ charset utf-8; #サーバーエンコーディング listen 443 ssl; #リッスンアドレス server_name server ip; #証明書にバインドされたウェブサイトのドメイン名 server_tokens off; #nginx のバージョン番号を非表示 #ssl 構成 ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; #証明書の公開鍵 ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; #証明書の秘密鍵 ssl_session_timeout 5m; ssl_ciphers SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers をオフ; ssl_dhparam /etc/nginx/dhparams.pem; #リクエスト ヘッダー add_header Strict-Transport-Security max-age=63072000; add_header X-Frame-Options SAMEORIGIN; add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" 常に; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;"; add_header Set-Cookie "HttpOnly"; add_header Set-Cookie "Secure"; #リクエストメソッドの制限## これらのリクエストメソッドのみを許可します ## $request_method !~ ^(GET|POST|DELETE|PUT|PATCH)$ の場合 { 444を返します。 } #アクセスパスの一致する場所 / { root /usr/share/nginx/html; #サイトディレクトリインデックス index.html index.htm; } 場所 /test/ { proxy_pass http://127.0.0.1:8100/; #ローカルポート8100を転送 } #パスへのアクセスを禁止# location /dirdeny { # すべて拒否; # 403 を返します。 #} #エラーページの構成 error_page 502 503 504 /error502.html; 場所 = /error502.html{ ルート /usr/share/nginx/html; } エラーページ 500 /error.html; 場所 = /error.html{ ルート /usr/share/nginx/html; } エラーページ 404 /notfind.html; 場所 = /notfind.html{ ルート /usr/share/nginx/html; } } 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL での %% のようなファジークエリの実装
>>: HTML テーブル マークアップ チュートリアル (4): 境界線の色属性 BORDERCOLOR
多くの人は、Scss を使用する瞬間からコンパイル方法を説明されてきました。したがって、コマンドのコ...
目次序文複数の言語を切り替えるにはどうすればいいですか? 1. vue-i18nパッケージをインスト...
通常のプロジェクト開発中に、MySQL バージョンが 5.6 から 5.7 にアップグレードされた場...
目次1. Dockerをビルドする2. コンテナに入る3. 設定ファイルを変更する4. Kafkaを...
目次序文1. システムサービス制御1. システムctl 2. ターゲット3. 共通システムサービス4...
目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...
フロントエンドのクロスドメイン問題に2日間近く悩まされましたが、ようやくngnxを使って解決したので...
そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...
1. ネクサスサービス構築の意義イントラネットの統合プロキシとして、チームで共同開発する場合、全員が...
設置環境WIN10 VMware Workstation Pro 15.0.0 ビルド 101344...
<br />原文: http://research.microsoft.com/~hel...
ホスト名を変更する場合は、以下の手順に従ってください。ホスト名の使用hostnameコマンドを使用す...
まず、MySQL とは何かを簡単に紹介します。簡単に言えば、データベースはデータを格納するための倉庫...
弊社のプロジェクトは Java で開発され、ミドルウェアは Tomcat でした。運用中に、Tomc...
この記事では、例を使用して、MySQL の継続的な集計の原理と使用方法を説明します。ご参考までに、詳...