web-dev-qa-db-ja.com

最初の証明書を確認できません(Comodo EssentialSSLワイルドカード)

私は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で問題なく機能します。

どんな助けでも大歓迎です。

1
wille0221

中間バンドルファイルの順序が正しくフォーマットされていることを確認して問題を解決し、.ca-bundleから.pemに変更して、imapd.confに次の行を追加しました。

tls_ca_path: /etc/ssl/certs
1
wille0221

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;
0
kenorb