Nginx で HTTPS 証明書を構成する詳細なプロセス

Nginx で HTTPS 証明書を構成する詳細なプロセス

1. HttpとHttpsの違い

HTTP: インターネットで最も広く使用されているネットワーク プロトコルです。クライアントとサーバーの要求と応答 (TCP) の標準です。WWW サーバーからローカル ブラウザーにハイパーテキストを転送するために使用される転送プロトコルです。ブラウザーの効率を高め、ネットワーク転送を削減できます。

HTTPS: セキュリティを目的とした HTTP チャネルです。簡単に言えば、HTTP のセキュア バージョンであり、HTTP の下に SSL レイヤーが追加されています。HTTPS のセキュリティの基礎は SSL であるため、暗号化された詳細には SSL が必要です。 HTTPS プロトコルの主な機能は、情報セキュリティ チャネルを確立してデータ転送のセキュリティを確保することと、Web サイトの信頼性を確認することの 2 つに分けられます。

HTTPS と HTTP の主な違いは次のとおりです。

1. https プロトコルでは、CA に証明書を申請する必要があります。一般的に、無料の証明書は少ないため、一定の料金が必要です。

2. HTTP はハイパーテキスト転送プロトコルであり、情報はプレーンテキストで送信されますが、HTTPS は安全な SSL 暗号化転送プロトコルです。

3. http と https は完全に異なる接続方法と異なるポートを使用します。前者は 80 で、後者は 443 です。

4. http 接続は非常にシンプルでステートレスです。HTTPS プロトコルは、SSL+HTTP プロトコルによって構築されたネットワーク プロトコルで、暗号化された送信と ID 認証を実行できます。http プロトコルよりも安全です。

2. opensslを使用して証明書を生成する

OpenSSL は最も人気のある SSL 暗号化ライブラリ ツールであり、SSL/TLS プロトコルの実装をサポートする汎用的で堅牢なフル機能のツール スイートを提供します。

たとえば、/usr/local/ssl に生成されます。

openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt

生成プロセス:

# openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /usr/local/ssl/nginx.key -out /usr/local/ssl/nginx.crt
2048ビットのRSA秘密鍵を生成する
...............................................................................+ ++
...............+++
新しい秘密鍵を '/usr/local/ssl/nginx.key' に書き込みます
-----
組み込まれる情報を入力するよう求められます
証明書リクエストに追加します。
これから入力するのは、識別名または DN と呼ばれるものです。
フィールドはたくさんあるが、一部は空白のままにしておくこともできる
いくつかのフィールドにはデフォルト値があります。
「.」を入力すると、フィールドは空白のままになります。
-----
国名(2文字コード)[XX]:CN
州または県名(フルネーム) []:北京
地域名(例:都市)[デフォルトの都市]:北京
組織名(例:会社)[Default Company Ltd]:xxxx
組織単位名(例:セクション)[]:xxxx
共通名(例:あなたの名前またはサーバーのホスト名)[]:xxxx(通常はドメイン名)
メールアドレス[]:[email protected]
#ll
合計 8
-rw-r--r--。1 ルート ルート 1391 4月 21 13:29 nginx.crt
-rw-r--r--。1 ルート ルート 1704 4月 21 13:29 nginx.key

3. Nginxにhttp_ssl_moduleモジュールをインストールする

Nginx で SSL モジュールが有効になっていない場合、Https の設定時にエラー メッセージが表示されます。

nginx: [emerg] 「ssl」パラメータには、/usr/local/nginx/conf/nginx.conf:xxx の ngx_http_ssl_module が必要です

Nginx には http_ssl_module モジュールがありません。コンパイルおよびインストール時に --with-http_ssl_module 設定を追加するだけです。

このシナリオでは、サーバーに nginx はインストールされていますが、http_ssl_module はインストールされていません。

1. 次のようなソース パッケージを入力します。

cd /app/download/nginx-1.12.2

2. 設定:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

#依存パッケージが必要になる場合があります yum -y install pcre-devel openssl openssl-devel

3.作る:

作る

4. make install を実行する必要はありません。そうしないと、インストールが上書きされます。

5. 次のように元の nginx をバックアップします。

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak

6. 次に、元の nginx を新しくコンパイルした nginx で上書きします (nginx を停止する必要があります)

cp ./objs/nginx /usr/local/nginx/sbin/

7. インストールステータスを確認します。

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。
nginx バージョン: nginx/1.12.2
gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) で構築
OpenSSL 1.0.2k-fips で構築 2017年1月26日
TLS SNIサポートが有効
設定引数: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

4. nginx 設定 https

いくつかの設定情報を貼り付けます:

 サーバー{

    聞く 80;
		サーバー名 www.yourdomain.com;
	  ^(.*) https://$server_name$1 permanent を書き換えます。#http を https にリダイレクトします
  }
サーバー{
	443 ssl を聴く;
	サーバー名 www.yourdomain.com;
	ssl_certificate /usr/local/ssl/nginx.crt;
	ssl_certificate_key /usr/local/ssl/nginx.key;
	ssl_session_cache 共有:SSL:1m;
	ssl_session_timeout 5分;
	# ハッカーがバージョンの脆弱性を悪用するのを防ぐために、ヘッダー内のサーバーバージョンを無効にします server_tokens off;
	#サイト全体が HTTPS であり、HTTP が考慮されていない場合は、HSTS を追加して、サイト全体が暗号化されていることをブラウザに通知し、HTTPS アクセスを強制することができます。fastcgi_param HTTPS on;
	fastcgi_param HTTP_SCHEME https;
	アクセスログ /usr/local/nginx/logs/httpsaccess.log;
}

まず、設定が正しいかどうかを確認します。

nginx の sbin ディレクトリに nginx の sbin ディレクトリを作成します。
nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf の構文は正常です
nginx: 設定ファイル /usr/local/nginx/conf/nginx.conf のテストが成功しました

nginxを再起動します。

/usr/local/nginx/sbin/nginx -s リロード

アクセス:

Nginx で HTTPS 証明書を構成する詳細なプロセスに関するこの記事はこれで終わりです。Nginx で HTTPS 証明書を構成することに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • https暗号化アクセス用にnginxを設定するための詳細なチュートリアル
  • Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)
  • Nginx設定の原理と実装プロセスの詳細な説明https
  • Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します
  • HttpとHttpsの両方をサポートするNginxの詳細な設定
  • Nginx http ヘルスチェック構成プロセス分析
  • nginx で SSL 証明書を設定して https サービスを実装する方法
  • Nginx での Frp による https への強制リダイレクト設定の詳細な説明
  • Docker に nginx をインストールし、https 経由でアクセスを構成する方法
  • Nginx の構成と HTTP 実装コード分析との互換性

<<:  MySQL インデックスのパフォーマンス最適化の問題に対する解決策

>>:  Vue プロジェクトはファイルダウンロードの進行状況バー機能を実装します

推薦する

MySQLの高可用性と高パフォーマンスのクラスタを構築する方法

目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...

mysql8.0.11 winx64 手動インストールと設定チュートリアル

まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...

Vue で lodop 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...

Tomcat を設定して IntelliJ IDEA 2018 で最初の Java Web プロジェクトを実行する方法

1 Tomcatをダウンロードして起動する公式サイト http://tomcat.apache.or...

img 画像タグに alt 属性を付与する必要がありますか?

img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...

MySQL でのストアド プロシージャと関数の作成の詳細な説明

目次1. ストアドプロシージャ1.1. 基本構文1.2 実行権限を指定してストアドプロシージャを作成...

Linux 論理ボリューム管理 (LVM) の使用法の概要

ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...

JavaScript 関数のパフォーマンスを測定するさまざまな方法の比較

目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...

W3C チュートリアル (15): W3C SMIL アクティビティ

SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...

クロスブラウザローカルストレージⅠ

原文: http://www.planabc.net/2008/08/05/userdata_beh...

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...

MySQL 5.7.17 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

インターネット上にはMySQL 5.7.17のインストールチュートリアルがほとんどなく不十分なので、...

HTML ページはダーク モードの実装をサポートします

2019年から、AndroidとiOSの両方のプラットフォームでダークモードが使用され始めました。も...

2つのLinuxサーバー間でファイルとフォルダを転送する手順

今日、私はプロジェクトの移行の問題に取り組んでいましたが、突然、大量の写真をどうやって移動したらよい...

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...