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

推薦する

Angularの動的コンポーネントの詳細な説明

目次使用シナリオ達成方法1. 動的コンポーネントを配置する場所2. コンポーネントのインスタンスを取...

停止したすべてのDockerコンテナを1つのコマンドで再起動する

停止したすべてのDockerコンテナを1つのコマンドで再起動するdocker ps -a | gre...

ウェブタイポグラフィにおける致命的な意味的ミス 10 選

<br />これは、Steven D が書いた Web フロントエンド開発デザインの基本...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

Linux システムでログを手動でスクロールする方法

ログローテーションは、Linux システムでは非常に一般的な機能です。ログローテーションは、システム...

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...

Dockerのセキュリティについて Docker-TLS暗号化通信の問題

目次1. Dockerのセキュリティ問題2. Dockerアーキテクチャの欠陥とセキュリティメカニズ...

MySQL操作テーブルでよく使われるSQLのまとめ

1. テーブル内のフィールドの種類を表示する テーブル名を記述する desc テーブル名 2. テー...

Tomcat が非同期サーブレットを実装する方法の詳細な説明

序文これまでの Tomcat シリーズの記事を通じて、私のブログを読んでいる学生は Tomcat に...

IE6かどうかを判定する最短JS(IEの書き方)

ブラウザが IE のどのバージョンであるかを検出するためによく使用される JavaScript コー...

sql_mode を変更する際の MySQL エラーの解決方法

目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...

ディレクトリスクロール効果を実現するネイティブJS

これはネイティブ JS で実装されたテキスト スクロール効果です。この効果は通常、ニュース、ダイナミ...

CSS を使用して HTML フォーム コントロールを美しくする詳細な例 (フォームの美化)

1. HTML送信ボタンと下部ボタンの基本構文構造1. HTML送信ボタン入力タグで type=&...

Docker に Solr 8.6.2 をインストールし、中国語の単語セグメンターを構成する方法

1. 環境バージョンDocker バージョン 19.03.12セントロス7ソル8.6.2 2. Do...

MySQL テーブル フィールドの時間設定のデフォルト値

アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...