GNU/Linux >> Linux の 問題 >  >> Cent OS

1つのIPアドレスを使用してApacheを使用するCentOSVPSで複数のSSL証明書を設定する方法

このチュートリアルでは、1つのIPアドレスのみを使用してApacheを使用してCentOSVPSに複数のSSL証明書を設定する方法を示します。

これは、Server Name Indication(SNI)と呼ばれるSSLプロトコルの拡張によって許可されます。現在のほとんどのデスクトップおよびモバイルWebブラウザーはSNIをサポートしています。 SNIを使用する主な利点は、IPアドレスを追加購入することなく複数のWebサイトを保護できることです。

Apache WebサーバーがOpenSSLライブラリとツールキットを使用できるように、mod_sslセキュリティモジュールがインストールされ、有効になっていることを確認してください。

yum install mod_ssl openssl

次のコマンドを実行します。

mkdir -p /etc/httpd/ssl/
mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.bak 
cd /etc/httpd/ssl/

ドメインのSSL証明書署名要求(CSR)ファイルを生成します:

openssl genrsa -out domain1.key 2048
openssl req -new -key domain1.key -out domain1.csr

openssl genrsa -out domain2.key 2048
openssl req -new -key domain2.key -out domain2.csr

証明書に次の詳細を入力します。

  • 国名
  • 州または県の名前
  • 地域名
  • 組織名
  • 組織単位名
  • メールアドレス

共通名(つまり、ドメイン名)の入力を求められたら、保護しているWebサイトのFQDN(完全修飾ドメイン名)を入力します。

実稼働環境で使用する場合は、商用SSL証明書をインストールすることをお勧めします。または、次のコマンドを使用してWebサイトまたはアプリケーションを開発またはテストする場合は、自己署名SSL証明書を生成して使用します。

openssl x509 -req -days 365 -in domain1.csr -signkey domain1.key -out domain1.crt

openssl x509 -req -days 365 -in domain2.csr -signkey domain2.key -out domain2.crt

「ssl.conf」Apache構成ファイルを編集します:

vi /etc/httpd/conf.d/ssl.conf

次の行を追加します:

LoadModule ssl_module modules/mod_ssl.so

Listen 443

NameVirtualHost *:443

SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
DocumentRoot /var/www/html/domain1
ServerName domain1.com
ServerAlias www.domain1.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/ssl/domain1.crt
SSLCertificateKeyFile /etc/httpd/ssl/domain1.key
#SSLCertificateChainFile /etc/httpd/ssl/ca.crt
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

<VirtualHost *:443>
DocumentRoot /var/www/html/domain2
ServerName domain2.com
ServerAlias www.domain2.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/httpd/ssl/domain2.crt
SSLCertificateKeyFile /etc/httpd/ssl/domain2.key
#SSLCertificateChainFile /etc/httpd/ssl/ca.crt
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

商用SSL証明書を使用する場合、署名機関には中間CA証明書が含まれる可能性があります。その場合は、新しい「/etc/httpd/ssl/ca.crt」ファイルを作成し、その中に中間CAの内容を貼り付けてから、「ssl.conf」構成ファイルを編集して、次の行のコメントを解除します。

SSLCertificateChainFile /etc/httpd/ssl/ca.crt

そのため、ApacheWebサーバーはCA証明書を見つけることができます。

Apache構成をテストします:

/etc/init.d/httpd configtest

Syntax OK

変更を有効にするには、Apacheサービスを再起動します。

service httpd restart

お気に入りのWebブラウザでhttps://domain1.comとhttps://domain2.comを開き、SSL証明書が正しくインストールされていることを確認します。

もちろん、Linux VPSホスティングサービスのいずれかを使用している場合は、これを行う必要はありません。その場合は、専門のLinux管理者にVPSに複数のSSL証明書を設定するよう依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS。 この投稿が気に入った場合は、左側のボタンを使用してソーシャルネットワーク上の友達と共有するか、下に返信を残してください。ありがとう。


Cent OS
  1. CentOSでApache仮想ホストを設定する方法

  2. Nginxを使用して1つのIPに複数のSSLを設定する方法

  3. SSL を使用して CentOS 6.2 にソースから Apache 2.4.2 をインストールする方法

  1. CentOS7用のApacheにSSL証明書をインストールする方法

  2. Apacheを使用してCentosVPSにWordPressマルチサイトをインストールする方法

  3. CentOS7VPSにPhpWikiをインストールする方法

  1. httpdApacheWebサーバーを使用してRHEL8/CentOS8にmod_sslをインストールする方法

  2. CentOS7でFirewallDを使用してファイアウォールを設定する方法

  3. CentOS7にApacheを使用してWordPressをインストールする方法