単一の 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サービスの起動手順の詳細な説明

推薦する

Vueは水平の斜めの棒グラフを実装します

この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...

HTML における水平および垂直の中央揃え方法の詳細な説明 (基礎)

序文馬を書いていたとき、水平方向と垂直方向の中央揃えの方法について、誰もあまり知らなかったと思います...

JavaScriptイベント実行メカニズムの深い理解

目次序文ブラウザJS非同期実行の原理ブラウザのイベントループ実行スタックとタスクキューマクロタスクと...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...

MySQL が innobackupex を使用して接続サーバーをバックアップできない場合の解決策

innobackupex を使用してバックアップする際に MySQL がサーバーに接続できない場合は...

Quickjs は JavaScript サンドボックスの詳細をカプセル化します

目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...

nginx リクエスト ヘッダー データ読み取りプロセスの詳細な説明

前回の記事では、nginx がリクエスト ラインのデータを読み取って、リクエスト ラインを解析する方...

Vue ポーリング リクエスト ソリューションの完全な例

世論調査の理解実際、ポーリングの焦点はループ自体ではなく、実行間の間隔にあります。 Ajax は非同...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

MySQLでテーブルを接続するいくつかの方法

MySQL テーブルでの接続方法は実は非常に簡単なので、ここではその特徴を簡単にリストします。テーブ...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

Pythonの関数知識についての簡単な説明

目次関数パラメータの2つの主要なカテゴリ位置パラメータ可変長パラメータ名前空間要約する関数パラメータ...

NavicatがMySQLに接続すると、10060、1045エラーとmy.iniの場所が報告されます。

Navicat は、データベースに接続するときにエラー 10060 および 1045 を報告します...

Linux で PCIe のバージョンと速度を確認する方法

PCIE には 4 つの異なる仕様があります。下の図でそのうちの 2 つを見てみましょう。マザーボー...