РЕДАКТИРОВАТЬ: как описано в следующих документах http://www.novell.com/support/kb/doc.php?id=7002392
я объединил эти файлы вот так domain.crt sf_bundle.crt >> domain.pem
и теперь следующая команда openssl s_client -connect domain:465
жалуется на verify error:num=19:self signed certificate in certificate chain
Надеюсь, кто-то может помочь найти ключ к разгадке: D
Я только что настроил наш mta через postfix, который предлагает IMAP и SMTP через TLS. Во время тестирования я создал самоподписанный сертификат, но теперь, чтобы избежать раздражающего предупреждения о ненадежном сертификате, я купил дешевый сертификат в 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, вставил содержимое файла csr, включая теги being и end. В этот момент я смог загрузить сгенерированный сертификат, который был zip-файлом, поэтому теперь у меня есть следующие файлы:
sf_bundle.crt ;Chain file, on't know how should be used domain.crt ;Provided along with sf_bundle by Godaddy domain.csr ;Genrated by me domain.key ;Genrated by me
Не знаю, как мне поступить, но я сделал следующее:
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 Class 2 Certification Authority verify error:num=19:self signed certificate in certificate chain verify return:0 --- Certificate chain 0 s:/OU=Domain Control Validated/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 Class 2 Certification Authority i:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority --- Server certificate -----BEGIN CERTIFICATE----- MIIFcjCCBFqgAwIBAgIHKx6Jb01O+jANBgkqhkiG9w0BAQUFADCB3DELMAkGA1UE BhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAj BgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOTA3BgNVBAsTMGh0 dHA6Ly9jZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9yeTEx MC8GA1UEAxMoU3RhcmZpZWxkIFNlY3VyZSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 eTERMA8GA1UEBRMIMTA2ODg0MzUwHhcNMTMwNzEyMDc1NTA0WhcNMTQwNzExMTcz MTAyWjA7MSEwHwYDVQQLExhEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQxFjAUBgNV BAMTDXdlYmVsb3BpbmcuZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDTAHQM3SanFxSZWnxls837ySCHB/CfBJXIBoKQdYOf/N3lGt69jnNHF8X2ZmSI TeW5Xk/wXnjruKD/EhBvAxiYZVWcp5zJGxd6VNqntiFCVTSesSnwM/X6A54vq/57 UnvrqK7ZozWnINiO/LIWxdVCUwcOmXH+fp6mVUsCbNd8Gp1HpMorhzpvBj1E/5I4 HbZjErGfrLlCYhs2cATtTcBtiUxne3CKOsT/sWd3Z2DAKsJQqd5u3Y59EEfiJmDq xtoCkfYAhZz5FkA9mr2PQD+UKGLOGjvRDI7P8p5RR9ZG7jixdok5qq0OikCPwex4 hatfWEokBjmWcmr8QcUk1cQjAgMBAAGjggHXMIIB0zAPBgNVHRMBAf8EBTADAQEA MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAw OQYDVR0fBDIwMDAuoCygKoYoaHR0cDovL2NybC5zdGFyZmllbGR0ZWNoLmNvbS9z ZnMxLTI1LmNybDBZBgNVHSAEUjBQME4GC2CGSAGG/W4BBxcBMD8wPQYIKwYBBQUH AgEWMWh0dHA6Ly9jZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3Np dG9yeS8wgY0GCCsGAQUFBwEBBIGAMH4wKgYIKwYBBQUHMAGGHmh0dHA6Ly9vY3Nw LnN0YXJmaWVsZHRlY2guY29tLzBQBggrBgEFBQcwAoZEaHR0cDovL2NlcnRpZmlj YXRlcy5zdGFyZmllbGR0ZWNoLmNvbS9yZXBvc2l0b3J5L3NmX2ludGVybWVkaWF0 ZS5jcnQwHwYDVR0jBBgwFoAUSUtSJ9EbvPKhIWpie1FCeorX1VYwKwYDVR0RBCQw IoINd2ViZWxvcGluZy5lc4IRd3d3LndlYmVsb3BpbmcuZXMwHQYDVR0OBBYEFJp4 5TYP4T3BfuI67Ek2vxtUNiVCMA0GCSqGSIb3DQEBBQUAA4IBAQBjXFPi/3e3GJ+J Pj7Rafieee4Tqcc5QbwKvrFEdK3OW9/XjntchNOsKumKFJeiK8bsUbSTS+wlpyKG +qHwrf8d1TtZgKiyJTBHcKxItqSrGsULM5ntTFq/gchOkE0hwK4vfwHZD9bHyy20 CqexuaTT3zpAL3zZi5q2QaOpqQxhPmlkIZvmNotw+a/E+3hmOFKpQtVfT7XeAcQr bIUMZUEbs778VzjnKdg4grD7oZxwPczbaeJLhdvKs8OEJSbqX/820hLQfoX+wMCI PNI1jPU3th1cu9nPKU41BXIDY1L6w9zCl2DRvQvjFx9YnjQ/R6YiyaCCh39WS+xg +An9srwv -----END CERTIFICATE-----
Связанная конфигурация в постфиксе выглядит так:
## /etc/postfix/main.cf ##Provided by Godaddy along with sf_bundle.crt smtpd_tls_cert_file=/etc/ssl/certs/domain.crt ##Generated by me smtpd_tls_key_file=/etc/ssl/private/domain.key smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt
Вам не нужен корневой сертификат в цепочке (хотя я не думаю, что это что-то повредит).
Я думаю, что в данном случае эта ошибка является скорее предупреждением от openssl. Я считаю, что это означает, что openssl не знает, что он должен доверять корневому сертификату этой цепочки. Если вы вытащите только корневой сертификат из этого пакета и укажете на него команду openssl с -CAfile
аргумент, я ожидаю, что "ошибка" должна исчезнуть.
Внутри файла sf_bundle.crt вы должны увидеть два
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
блоки (возможно, с простым текстом над каждым блоком, показывающим, какой сертификат содержит блок). Если вы разделите каждый из этих блоков на отдельный файл, в результате вы получите block1.crt
и block2.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
и это должно, надеюсь, подключиться без выдачи ошибки самозаверяющего сертификата.
Если ты действительно сделал
domain.key domain.crt sf_bundle.crt >> domain.pem
затем вы включили в цепочку свой закрытый ключ, чего не следует делать.
Требуются только сертификат вашего сервера плюс цепочка промежуточных сертификатов, чтобы клиент мог сопоставить эмитента верхнего из них с доверенным корневым сертификатом, которым он обладает.