単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。複数の SSL 証明書を構成するには、複数の IP アドレスが必要です。パブリック IP アドレスが制限されている場合は、TLS Server Name Indication 拡張 (SNI、RFC 6066) を使用できます。これにより、ブラウザは SSL ハンドシェイク中に要求されたサーバー名、つまりホストを送信できるため、Nginx は対応するサーバーの SSL 構成を見つけることができます。

設定手順は次のとおりです。

1. NginxがTLSをサポートしているかどうかを確認する

$ nginx -V
...
TLS SNIサポートが有効
...

2. TLS SNI サポートが無効になった場合は、openssl バージョンをアップグレードし、nginx を再コンパイルする必要があります。

具体的な手順は次のとおりです。

まずopensslをダウンロードします(バージョン1.0.1hを推奨)

#wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz

Nginxをダウンロード

#wget http://nginx.org/download/nginx-1.9.9.tar.gz

opensslを解凍する

#tar -zxvf openssl-1.0.1h.tar.gz

nginxを解凍してコンパイルする

#tar -zxvf nginx-1.9.9.tar.gz
# nginx-1.9.9 をインストールします
#./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=../openssl-1.0.1h/
#make && インストール

#Nginxのバージョン情報を確認する

#/usr/local/nginx/sbin/nginx -V
nginx バージョン: nginx/1.9.9
gcc 4.1.2 20080704 (Red Hat 4.1.2-55) で構築
OpenSSL 1.0.1h で構築 2014年6月5日
TLS SNIサポートが有効
設定引数: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-openssl=../openssl-1.0.1h/

Vhostでドメイン名証明書を構成する

サーバ
    {
     #########
        聞く 80;
        443 ssl を聴く;
        #聞く [::]:80;
        サーバー名 we.baohua.me;
        ルート /home/wwwroot/we.baohua.me;

        sslオン;
        ssl_certificate_key /home/wwwroot/cert/we.baohua.me.key;
        ssl_certificate /home/wwwroot/cert/we.baohua.me.crt;
        ssl_プロトコル SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers HIGH:!aNULL:!MD5;
     ###############
}

次に、Nginx を再起動します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Nginx で SSL 証明書を設定する方法
  • Nginx サーバーの SSL セキュリティ構成の詳細な説明
  • SSL モジュール構成を使用して HTTPS アクセスをサポートする nginx の詳細な説明
  • Nginx サーバーで SSL を有効にする方法
  • NginxはSSL証明書をポート443でリッスンするように設定します
  • nginx で SSL 双方向検証を設定する方法
  • HTTPS アクセスを実現するための Nginx 構成 SSL 証明書の詳細な説明
  • Nginx サーバーの SSL 証明書の構成と SSL 用のリバース プロキシの構成
  • nginx で SSL 証明書を設定して https サービスを実装する方法
  • Nginx ローカル構成 SSL アクセス例チュートリアル

<<:  WeChatミニプログラムにナビゲーション機能を実装する方法

>>:  MySQL 5.7.18のインストール方法とMySQLサービスの起動手順の詳細な説明

推薦する

CentOS7 から CentOS8 にアップグレードする方法 (詳細な手順)

この記事では、具体的な例を使用して、CentOS 7 から CentOS 8 にアップグレードする方...

Node.js の fs モジュールと Path モジュールのメソッドの詳細な説明

概要:ファイルシステム モジュールは、標準の POSIX ファイル I/O 操作セットをラップしたシ...

MySQL の一般的なツール例の概要 (推奨)

序文この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習...

オーディオマニアにアピールするオーディオビジュアルLinuxディストリビューション

私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...

MySQLはSQL文を使用してテーブル名を変更します

MySQL では、SQL ステートメント rename table を使用してテーブル名を変更できま...

Vue で動的に追加されたルーティング ページの更新時に失敗する理由と解決策

目次問題の説明シナリオインターフェースリターンフロントエンドメニューの定義vuex のメソッド問題原...

2秒以内にHTMLページ内の他のページにリダイレクトする方法

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

SELINUXの動作原理の詳細な説明

1. はじめにSELinux が Linux にもたらす主な価値は、柔軟で構成可能な MAC メカニ...

Linux での mysql-5.7.28 インストール チュートリアル

1. 公式ウェブサイトから Linux バージョンをダウンロードします: https://dev.m...

Vue はブラウザのパスワード記憶機能を無効にするサンプル コードを実装します

情報を探すインターネットで見つかったいくつかの方法: autocomplete="off&...

デザイナーの「職業病」について

デザイナーは世界で最も繊細で感情的な人々だと私はいつも感じています。私がこう言うときに優越感を感じる...

Docker で Python スクリプトを実行する方法

まず、Docker イメージ用の特定のプロジェクト ディレクトリを作成します。例: mkdir /h...

VMware Workstation 15 Pro に Ubuntu 1804 をインストールするチュートリアル (画像とテキスト付き)

このメモはインストール チュートリアルです。実用的な意味はありません。記録のためだけに書いています。...

OpenShift のクイックインストールの詳細な手順

OpenShift 3.9 の最新バージョンを体験する最も早い方法。準備 [root@host ~]...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...