私はSSL証明書の設定とサーバー全般の操作に慣れていないので、自分が置かれている状況を説明しようとしているので、ご容赦ください。
最近、サーバーのセキュリティ保護に使用されるComodoEssentialSSLワイルドカードライセンスを取得しました。私が構成しているサーバーは、Kolabで使用するためのものです。 Kolabは機能していますが、SSLが構成されていないため、SSLを設定する可能性があると考えました。対応するKolabのハウツーページ( https://docs.kolab.org/howtos/secure-kolab-server.html )に記載されている手順に従いましたが、設定したセクションでスタックしました。 cyrus-IMAPサーバーを起動します。
実行時:
openssl s_client -showcerts -connect example.org:993
次の出力が得られます(切り捨てられます)。
CONNECTED(00000003)
depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org
verify error:num=27:certificate not trusted
verify return:1
depth=0 OU = Domain Control Validated, OU = EssentialSSL Wildcard, CN = *.example.org
verify error:num=21:unable to verify the first certificate
verify return:1
---
Certificate chain
0 s:/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.example.org
i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
---
Server certificate
subject=/OU=Domain Control Validated/OU=EssentialSSL Wildcard/CN=*.example.org
issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
---
No client certificate CA names sent
---
SSL handshake has read 2019 bytes and written 421 bytes
---
...
Start Time: 1502097786
Timeout : 300 (sec)
Verify return code: 21 (unable to verify the first certificate)
---
* OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=PLAIN AUTH=LOGIN SASL-IR] example.org Cyrus IMAP git2.5+0-Debian-2.5~dev2015021301-0~kolab2 server ready
ただし、証明書に-CApathを指定すると機能し、検証リターンコード0(ok)が返されますが、sshを介してサーバーにログインしているときにコマンドを実行した場合に限ります。 Thunderbirdでメールを設定している間、メールボックスにアクセスできますが、証明書に「不明なID」があるため、最初にセキュリティ例外を追加する必要があります。ただし、証明書は、-CApathを指定しなくても、httpsのポート443で問題なく機能します。
どんな助けでも大歓迎です。
中間バンドルファイルの順序が正しくフォーマットされていることを確認して問題を解決し、.ca-bundleから.pemに変更して、imapd.confに次の行を追加しました。
tls_ca_path: /etc/ssl/certs
openssl s_client -showcerts -connect example.com:443
中に次のエラーが発生した場合:
エラーの確認:num = 20:ローカル発行者証明書を取得できません
CAのバンドル 証明書が含まれていることを確認する必要があります。
Comodo CAがSSL証明書を発行すると、特定のComodo CAバンドルの中間証明書を送信して、一緒にインストールします。これらの証明書は、いわゆる証明書チェーンを作成します。エンドユーザー証明書は、ルートの1つを使用して署名された中間体の1つを使用して署名されました。ブラウザがWebサイトにアクセスすると、証明書チェーンを構築し、提示されているSSL証明書をトラストストアのルートの1つにチェーンします。
これらのファイルを証明書プロバイダーからダウンロードしたことを確認してください。
最も便利な方法(特に Nginx の場合)は、たとえばCAバンドルをメインCRTに追加することにより、それらすべてを1つにマージすることです。
$ cat STAR_example_com.ca-bundle > STAR_example_com.crt
単一の.ca-bundle
ファイル(CAバンドル)がなく、複数のファイルがある場合は、それらをすべて1つにマージします。
次に、通常どおりSTAR_example_com.crt
をインストールします。 Nginxの例:
ssl_certificate /etc/nginx/ssl/STAR_example_com.crt;
ssl_certificate_key /etc/nginx/ssl/STAR_example_com.key;