SSLサーバ証明書の設定(apache,dovecot,postfix)

ALL
スポンサーリンク

認証局から発行されたSSLサーバ証明書の apache,dovecot,postfix への設定についてです。
「サーバ秘密鍵」、「サーバ証明書」、「サーバ証明書を発行した認証局のCA証明書」を設定します。

以降、以下のパス/ファイル名で説明します。

サーバ秘密鍵:/etc/certs/server.key
サーバ証明書:/etc/certs/server.crt
サーバ証明書を発行した認証局のCA証明書:/etc/certs/ca.crt

下記記事で紹介した、「プライベート認証局(オレオレ認証局)による作成方法」「オレオレ証明書」で作成した証明書ファイルも同様に設定できます。

CentOS6/CentOS7/Ubuntu14.04 でのサーバ証明書の作成方法 パソコン鳥のブログ

apache

SSLCertificateFile , SSLCertificateKeyFile , SSLCertificateChainFile で指定します。

CentOS6 では次のように設定します。
なお、オレオレ証明書の場合は、CA証明書が無いので SSLCertificateChainFile の指定は不要です。

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

SSLCertificateFile /etc/certs/server.crt
SSLCertificateKeyFile /etc/certs/server.key
SSLCertificateChainFile /etc/certs/ca.crt

設定後、/etc/init.d/httpd reload で反映させます。

postfix

smtpd_tls_key_file , smtpd_tls_cert_file , smtpd_tls_CAfile で指定します。

CentOS6 では次のように設定します。
なお、オレオレ証明書の場合は、CA証明書が無いので smtpd_tls_CAfile の指定は不要です。

/etc/postfix/main.cf

smtpd_tls_key_file = /etc/certs/server.key
smtpd_tls_cert_file = /etc/certs/server.crt
smtpd_tls_CAfile = /etc/certs/ca.cer

設定後、/etc/init.d/postfix reload で反映させます。

dovecot

ssl_cert , ssl_key で指定します。
CentOS6 では次のように設定します。

オレオレ証明書の場合は、CA証明書が無いので次のように指定します。

/etc/dovecot/conf.d/10-ssl.conf

ssl_cert = </etc/certs/server.crt
ssl_key = </etc/certs/server.key

設定後、/etc/init.d/dovecot reload で反映させます。

CA証明書がある場合、ssl_cert には、server.crt と ca.crt を連結したファイルを指定します。
このファイルは、サーバ証明書 -> CA証明書の順に連結する必要があります。
以下のようにして、ファイル名 server_ca.pem として作成します。

cat /etc/certs/server.crt /etc/certs/ca.crt > /etc/certs/server_ca.pem

このように CA証明書を連結して作成しておかないと、Outlook2010で
「接続しているサーバは、確認できないセキュリティ証明書を使用しています。
証明書チェーンは処理されましたが、信頼プロバイダが信頼していないルート証明書で強制終了しました。」
とエラーが表示されます。

CentOS6 では次のように設定します。

/etc/dovecot/conf.d/10-ssl.conf

ssl_cert = </etc/certs/server_ca.pem
ssl_key = </etc/certs/server.key

設定後、/etc/init.d/dovecot reload で反映させます。

参考

ssl – specify certificate of CA in Dovecot – Unix & Linux Stack Exchange

コメント