Apache:SSLサーバ証明書の設定[ワイルドカード・マルチドメインタイプ]

1枚のSSLサーバ証明書を複数のサイトで利用するには、Apacheに追加設定を行う必要があります。サブドメインを自由に証明できるワイルドカードタイプや、複数のコモンネーム(FQDN)を証明するマルチドメインタイプのSSLサーバ証明書を設定する場合は、このページを参考にしてください。

スタンダードタイプのSSLサーバ証明書の設定は以下のページをご覧ください。

Apache:SSLサーバ証明書の設定[スタンダード]

構成例

Apacheの構成は下記を想定しています。お客様の環境よって手順に記載しているパスやディレクトリ名、ファイル名が異なる場合がございますので注意してください。

秘密鍵の保存ディレクトリ /etc/pki/tls/private/
SSLサーバ証明書の保存ディレクトリ /etc/pki/tls/certs/
SSLの設定ファイル /etc/httpd/conf.d/ssl.conf

設定手順

  1. 送付したSSLサーバ証明書と中間証明書を、SSLサーバ証明書の保存ディレクトリに保存してください。

    ※設定済みのSSLサーバ証明書を上書きしないようご注意ください。

  2. サーバにログインして/etc/pki/tls/に移動してください。
    # cd /etc/pki/tls/
  3. 保存したSSLサーバ証明書を、root権限のみで読めるようにアクセス権と所有権を変更してください。
    # chmod 400 SSLサーバ証明書の保存ディレクトリ/SSLサーバ証明書のファイル名
    # chmod 400 SSLサーバ証明書の保存ディレクトリ/中間証明書のファイル名
    # chown root:root SSLサーバ証明書の保存ディレクトリ/SSLサーバ証明書のファイル名
    # chown root:root SSLサーバ証明書の保存ディレクトリ/中間証明書のファイル名
    
    # chmod 400 certs/example_com.crt
    # chmod 400 certs/example_com.ca-bundle
    # chown root:root certs/example_com.crt
    # chown root:root certs/example_com.ca-bundle
    
  4. 続いて、SSLの設定ファイルをエディタで開いてください。
    # vi SSLの設定ファイル
    
    # vi /etc/httpd/conf.d/ssl.conf
  5. 該当する項目を編集します。秘密鍵ファイル、SSLサーバ証明書ファイル、中間証明書ファイルを指定してください。
    SSLCertificateFile SSLサーバ証明書ファイルを指定します。
    SSLCertificateKeyFile SSLサーバ証明書とペアになる秘密鍵を指定します。
    SSLCertificateChainFile 中間証明書ファイルを指定します。
    NameVirtualHost IPアドレス:443
    <VirtualHost IPアドレス:443>
    DocumentRoot "ドキュメントフォルダ"
    ServerName コモンネーム:443 SSLCertificateFile SSLサーバ証明書の保存ディレクトリ/SSLサーバ証明書のファイル名 SSLCertificateKeyFile 秘密鍵の保存ディレクトリ/秘密鍵のファイル名 SSLCertificateChainFile 中間証明書の保存ディレクトリ/中間証明書のファイル名 </VirtualHost>
    
    NameVirtualHost *:443
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/contact"
    ServerName contact.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/sales"
    ServerName sales.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>
    IPアドレス別にSSLサーバ証明書を設定する場合は、<VirtualHost *:443>に個別のIPアドレスを設定してください。NameVirtualHostは不要です。
    
    <VirtualHost 192.168.1.100:443>
    DocumentRoot "/var/www/html"
    ServerName example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>
    
    <VirtualHost 192.168.1.101:443>
    DocumentRoot "/var/www/contact"
    ServerName contact.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>
    
    <VirtualHost 192.168.1.102:443>
    DocumentRoot "/var/www/sales"
    ServerName sales.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    SSLCertificateChainFile /etc/pki/tls/certs/example_com.ca-bundle
    </VirtualHost>

    SSLCertificateChainFileディレクティブがなく中間証明書が指定できない場合は、サーバ証明書と中間証明書を結合したファイルをSSLCertificateFileディレクティブに指定してください。

    
    #cat certs/example_com.crt certs/example_com.ca-bundle > certs/example_com_combined.crt
    #vi /etc/httpd/conf.d/ssl.conf
    
    ---									
    NameVirtualHost *:443
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/html"
    ServerName example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com_combined.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    </VirtualHost>
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/contact"
    ServerName contact.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com_combined.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    </VirtualHost>
    
    <VirtualHost *:443>
    DocumentRoot "/var/www/sales"
    ServerName sales.example.com:443
    SSLCertificateFile /etc/pki/tls/certs/example_com_combined.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example_com.key
    </VirtualHost>

    キーペアが不明

    SSLサーバ証明書と対になる秘密鍵が不明の場合は、下記ページでキーペアを確認してください。

    Apache:キーペアの確認

  6. httpd -tもしくはapachectl configtestで設定ファイルの構文チェックを行ってください。
    # httpd -t
    Syntax OK

    ※ 構文チェックは設定ファイルの文法的なエラーをチェックするのみで、設定内容のチェックは行いませんのでご注意ください。

  7. Apacheを再起動して設定を反映させてください。
    # systemctl restart httpd
    または、
    # service httpd restart
  8. 以上で設定は完了です。SSL通信に問題がないか、証明書の有効期限が更新されているか等を確認してください。
    サイトシールを設定する場合は下記ページをご覧ください。

    サイトシールの設置

Apache関連情報

Apache

ページの先頭に戻る

  1. ホーム
  2. サポート
  3. マニュアル
  4. Apache
  5. SSLサーバ証明書の設定[ワイルドカード・マルチドメインタイプ]