web-dev-qa-db-ja.com

SSLエラー:証明書チェーン内の自己署名証明書

編集:次のドキュメントで説明されているようにhttp://www.novell.com/support/kb/doc.php?id=7002392私はこのdomain.crt sf_bundle.crt >> domain.pemのようなファイルを連結しましたが、次のコマンドopenssl s_client -connect domain:465verify error:num=19:self signed certificate in certificate chainについて文句を言います手がかり:D

tLSを介してIMAPとSMTPを提供するpostfixを介してmtaを構成しました。テスト中に自己署名証明書を作成しましたが、信頼できない証明書の警告を回避するために、Godaddyで安価な証明書を購入しました。 http://www.godaddy.com/compare/gdcompare3_ssl.aspx

ここでの問題は、おそらくGodaddyがダウンロードした証明書をインストールするときに、何か問題が発生しているため、まだ警告が表示されていることです。

以下は私が遭遇したプロセスです:

 openssl genrsa -des3 -out domain.key 1024 
 openssl req -new -key domain.key -out domain.csr 

Godaddyに行き、beingタグとendingタグを含むcsrファイルのコンテンツを貼り付けます。その時点で、生成された証明書(Zipファイル)をダウンロードできたので、次のファイルがあります。

 sf_bundle.crt;チェーンファイル、使用方法がわからない
 domain.crt; Godaddyによってsf_bundleと一緒に提供
 domain.csr;私によって生成
 domain.key;私が生成

どうすればよいかわかりませんが、次のことを行いました。

cat domain.crt sf_bundle.crt >> /etc/ssl/certs/domain.pem
ln -sf /path/to/domain.key /etc/ssl/private/domain.key  

しかし、テストすると、次の問題が発生します。

 openssl s_client -connect imap.domain.ltd:465
CONNECTED(00000003)
 depth = 2 C = US、O = "Starfield Technologies、Inc。"、OU = Starfieldクラス2認証局
 verifyerror:num = 19:selfsignedcertificate incertificatechain 
 verifyreturn:0 
 --- 
 Certificatechain 
 0 s:/ OU =ドメイン制御検証済み/CN=webeloping.es
i:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies、Inc。/ OU = http:// certificates.starfieldtech.com/repository/CN=Starfield Secure Certification Authority/serialNumber = 10688435 
 1 s:/ C = US/ST = Arizona/L = Scottsdale/O = Starfield Technologies、Inc。/ OU = http ://certificates.starfieldtech.com/repository/CN=Starfield Secure Certification Authority/serialNumber = 10688435 
 i:/ C = US/O = Starfield Technologies、Inc。/ OU = Starfield Class 2 Certification Authority 
 2 s:/ C = US/O = Starfield Technologies、Inc。/ OU = Starfield Class2認証局
 i:/ C = US/O = Starfield Technologies、Inc。/ O U =スターフィールドクラス2認証局
 --- 
サーバー証明書
 ----- BEGIN CERTIFICATE ----- 
 MIIFcjCCBFqgAwIBAgIHKx6Jb01O + jANBgkqhkiG9w0BAQUFADCB3DEL 。] BhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAj 
 BgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOTA3BgNVBAsTMGh0 
 dHA6Ly9jZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9yeTEx 
 MC8GA1UEAxMoU3RhcmZpZWxkIFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 
 eTERMA8GA1UEBRMIMTA2ODg0MzUwHhcNMTMwNzEyMDc1NTA0WhcNMTQwNzExMTcz 
 MTAyWjA7MSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxFjAUBgNV 
 BAMTDXdlYmVsb3BpbmcuZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB [.____。】AQDTAHQM3SanFxSZWnxls837ySCHB/CfBJXIBoKQdYOf/N3lGt69jnNHF8X2ZmSI [ .____。】TeW5Xk/wXnjruKD/EhBvAxiYZVWcp5zJGxd6VNqntiFCVTSesSnwM/X6A54vq/57 [.____。】UnvrqK7ZozWnINiO/LIWxdVCUwcOmXH + fp6mVUsCbNd8Gp1HpMorhzpvBj1E/5I4 [.____。】HbZjErGfrLlCYhs2cATtTcBtiUxne3CKOsT/sWd3Z2DAKsJQqd5u3Y59EEfiJmDq 
 xtoCkfYAhZz5F kA9mr2PQD + UKGLOGjvRDI7P8p5RR9ZG7jixdok5qq0OikCPwex4 
 hatfWEokBjmWcmr8QcUk1cQjAgMBAAGjggHXMIIB0zAPBgNVHRMBAf8EBTADAQEA 
 MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAw 
 OQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL2NybC5zdGFyZmllbGR0ZWNoLmNvbS9z [.____。】ZnMxLTI1LmNybDBZBgNVHSAEUjBQME4GC2CGSAGG/W4BBxcBMD8wPQYIKwYBBQUH 
 AgEWMWh0dHA6Ly9jZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3Np 
 dG9yeS8wgY0GCCsGAQUFBwEBBIGAMH4wKgYIKwYBBQUHMAGGHmh0dHA6Ly9vY3Nw 
 LnN0YXJmaWVsZHRlY2guY29tLzBQBggrBgEFBQcwAoZEaHR0cDovL2NlcnRpZmlj 
 YXRlcy5zdGFyZmllbGR0ZWNoLmNvbS9yZXBvc2l0b3J5L3NmX2ludGVybWVkaWF0 
 ZS5jcnQwHwYDVR0jBBgwFoAUSUtSJ9EbvPKhIWpie1FCeorX1VYwKwYDVR0RBCQw 
 IoINd2ViZWxvcGluZy5lc4IRd3d3LndlYmVsb3BpbmcuZXMwHQYDVR0OBBYEFJp4 [.____。】5TYP4T3BfuI67Ek2vxtUNiVCMA0GCSqGSIb3DQEBBQUAA4IBAQBjXFPi/3e3GJ + J [.____。】Pj7Rafieee4Tqcc5QbwKvrFEdK3OW9/XjntchNOsKumKFJeiK8bsUbSTS + wlpyKG 
 + qHwrf8d1TtZgKiyJTBHcKxItqSrGsULM5ntTFq/gchOkE0hwK4vfwHZD9bHyy20 
 Cqexu aTT3zpAL3zZi5q2QaOpqQxhPmlkIZvmNotw + A/E + 3hmOFKpQtVfT7XeAcQr [.____。】bIUMZUEbs778VzjnKdg4grD7oZxwPczbaeJLhdvKs8OEJSbqX/820hLQfoX + wMCI [.____。】PNI1jPU3th1cu9nPKU41BXIDY1L6w9zCl2DRvQvjFx9YnjQ/R6YiyaCCh39WS + XG 
 + An9srwv [.____。】----- ENDのCERTIFICATE ---- -

Postfixの関連する構成は次のようになります。

 ##/etc/postfix/main.cf
##Godaddyがsf_bundle.crt 
 smtpd_tls_cert_file =/etc/ssl/certs/domain.crt [.____とともに提供。] ##生成者
 smtpd_tls_key_file =/etc/ssl/private/domain.key 
 smtp_tls_CAfile =/etc/ssl/certs/ca-certificates.crt 
1
user846226

チェーン内にルート証明書は必要ありません(ただし、ルート証明書を持っていると何も害はないと思います)。

このエラーは、opensslからの警告であると私は思います。それが意味するのは、opensslがそのチェーンのルート証明書を信頼する必要があることを知らないということだと思います。そのバンドルからルート証明書だけを取り出し、-CAfile引数を使用してopensslコマンドをポイントすると、「エラー」がなくなると思います。

Sf_bundle.crtファイル内に2つ表示されます。

-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----

ブロック(各ブロックの上にプレーンテキストがあり、ブロックに含まれる証明書を示している可能性があります)。これらの各ブロックを独自のファイルに分割して、最終的にblock1.crtblock2.crtになる場合は、それぞれでopenssl x509 -noout -subject -in <file.crt>を実行して、それぞれの証明書の件名を取得できるはずです。

block2.crtの件名が/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authorityであるとすると、openssl s_client -CAfile block2.crt -connect imap.domain.ltd:465を実行できるはずです。できれば、自己署名証明書エラーが発生することなく接続できるはずです。

3
Etan Reisner

あなたが本当にしたなら

domain.key domain.crt sf_bundle.crt >> domain.pem

次に、秘密鍵をチェーンに含めましたが、含めないでください。

サーバーの証明書と一連の中間証明書のみが必要です。これにより、クライアントは、サーバーの最上位の発行者を、所有している信頼されたルート証明書と照合できます。

1