
Cyrus インスタンスの証明書を変更してから、cyradm で署名するたびに次の警告が表示されます。
cyradm --user cyrus --authz cyrus localhost
verify error:num=19:self signed certificate in certificate chain
これは、サーバーに接続するときにも表示される OpenSSL エラーですopenssl s_client -connect FQDN
(投稿では、サブジェクト/証明書名を FQDN に置き換え、証明書ブロックを省略しました)。
CONNECTED(00000003)
depth=2 /C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
0 s:/OU=Domain Control Validated/CN=FQDN
i:/C=NL/O=TERENA/CN=TERENA SSL CA
1 s:/C=NL/O=TERENA/CN=TERENA SSL CA
i:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware
2 s:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware
i:/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/OU=http://www.usertrust.com/CN=UTN-USERFirst-Hardware
---
Server certificate
-----BEGIN CERTIFICATE-----
(omitted)
-----END CERTIFICATE-----
subject=/OU=Domain Control Validated/CN=FQDN
issuer=/C=NL/O=TERENA/CN=TERENA SSL CA
---
No client certificate CA names sent
---
SSL handshake has read 4171 bytes and written 328 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 88FC7D094D2B0A0EAD11ADBAB0F4605CFF8B72DA0079C3C6E47939018C4CA3D4
Session-ID-ctx:
Master-Key: A88EF226C587C6F9AE43EC7D04D6BC462E657ED851B6FC336940898A57C31E55BCFFACDFFEDBAFB3C65A024F27EB1006
Key-Arg : None
Start Time: 1431561482
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
* OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE AUTH=LOGIN AUTH=PLAIN SASL-IR] FQDN Cyrus IMAP v2.4.12-Debian-2.4.12-2 server ready
これは私のものです/etc/imapd.conf
:
tls_ca_path: /etc/ssl/certs
tls_ca_file: /etc/ssl/certs/TERENA_SSL_CA.pem
tls_cert_file: /etc/ssl/certs/mail.pem
tls_key_file: /etc/ssl/private/mail.key
私はTERENA CA証明書を取得しましたhttps://www.terena.org/activities/tcs/repository/、セクション「TCS CA 証明書 (SHA1)/ TERENA SSL CA (PEM)」。ファイルを確認すると、ファイルには証明書が 1 つしかないことが示されるため、ルート証明書を含める理由にはなりません。問題のルート証明書「UTN_USERFirst_Hardware_Root_CA.pem」は、サーバーにインストールされているパッケージless
の一部です。ca-certificates
Cyrus がチェーンのルート証明書の配信に固執し、それについて不満を言う理由が全く分かりません。
アップデート1:
- システムではUbuntu 12.04が実行されています。
- 中間 CA の権限は 644、リーフの権限は 444 です。
ls -lah /etc/ssl/certs/cyrus*
何もしません。そのようなフォルダーは存在しません。openssl x509 -in /etc/ssl/certs/cyrus-imapd-ca.pem -noout -text |grep Issuer
、証明書へのファイル パスは次のとおりです。Issuer: C=NL, O=TERENA, CN=TERENA SSL CA CA Issuers - URI:http://crt.tcs.terena.org/TERENASSLCA.crt
答え1
おそらくエラー メッセージは誤解を招くものでしょう。私も(Debian 8.2/stable)servername
で設定を変更してからこのエラーが発生します。imapd.conf
RapidSSL の中間証明書を使用して、std インストールの 2 つの双子のようなサーバーをセットアップしました。両方とも、まったく同じセットアップで cyrus-imapd を実行します (diff
確認のため、構成ファイルを比較しました)。私は細かいことにこだわるので、両方のサーバーでservername
in をimapd.conf
同じ CNAME に変更しました。1 つはマスターで、もう 1 つはフェイルオーバー用のレプリカ サーバーになる必要があるため、同じ名前になっています。これにより、もちろん SASL の AUTH 領域も変更されます。 では、標準領域 (プレーン ホスト名) で uid をsrv1
使用したときにも観察されたエラー 19 が表示されますが、 では別のエラー (セットアップは同じですが、正規のドメイン名が異なる) が発生します。cyrus
srv2
Login failed: authentication failure at /usr/lib/x86_64-linux-gnu/perl5/5.20/Cyrus/IMAP/Admin.pm line 120.
面白いと思いませんか? 1 台目または 2 台目のサーバーでコメントを解除するとservername
、imapd.conf
エラーなしですべて正常に動作します。私の解決策は、レルムに cyrus SASL ユーザーを追加することでしたservername
が、これですべてが再び正常に動作します。「自己署名証明書」エラーは消えました。
あなたの質問を読んだ後、さらにいくつかのテストを行いました。 およびtls_ca_path: /tmp/
を中間証明書のみに設定した場合、Cyrus はチェーンされたルート CA 証明書を出力します。 ただし、コメントを解除したり、 と同じレルムを持つSASL ユーザーを追加したりした場合tls_ca_file:
は、このエラーは発生しません。servername
cyrus
servername
かなり奇妙です。Cyrus はとにかくルート CA 証明書を出力するので、それがこのエラー メッセージの原因ではないことは確かです。2 番目のサーバーでも、正しい SASL 領域設定を持つマスターでも、このメッセージは表示されません。私の場合は領域が間違っていましたが、状況は異なる可能性があります。したがって、err 19 メッセージはルート CA 証明書とはまったく関係ありません。
これが役に立つことを願います、lbc (またしても Perl 嫌い :-)