Каким-то образом как раз сегодня мой клиент-морефайл неожиданно выдал эту ошибку. Я не верю, что это проблема с морским файлом, потому что мой openssl выдает точно такую же ошибку:
user@nb-user:~$ echo |openssl s_client -connect seafile.mydomain.ch:443
CONNECTED(00000003)
depth=1 C = IL, O = StartCom Ltd., OU = Secure Digital Certificate Signing, CN = StartCom Class 2 Primary Intermediate Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/description=5RygJ9fx8e2SBLzw/C=CH/ST=Thurgau/L=Frauenfeld/O=mydomain GmbH/CN=*.mydomain.ch/emailAddress=postmaster@mydomain.ch
i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
1 s:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIGqzCCBZOgAwIBAgIDAjmGMA0GCSqGSIb3DQEBBQUAMIGMMQswCQYDVQQGEwJJ
TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0
[... some more lines]
-----END CERTIFICATE-----
subject=/description=5RygJ9fx8e2SBLzw/C=CH/ST=Thurgau/L=Frauenfeld/O=mydomain GmbH/CN=*.mydomain.ch/emailAddress=postmaster@mydomain.ch
issuer=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA
---
No client certificate CA names sent
---
SSL handshake has read 3997 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-GCM-SHA384
Session-ID: 96E1F6B9E123F8F8C1C1E8FB0DBACDBBE76ECB3E2CF5C46C1FD2CF46833C8212
Session-ID-ctx:
Master-Key: 25837E1786B0CC60E676D0694319641CD0887F9CAF48A820F1C0D6ABA6FDE0742551816ACD2A4885B0D3FC143716B1F6
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - 88 15 c0 c5 30 04 63 d6-ff 7c 72 c4 12 84 7b d6 ....0.c..|r...{.
0010 - 73 33 8d 91 7c da ce 22-23 d0 31 fb c1 7f 1c 9c s3..|.."#.1.....
[... some more lines]
Start Time: 1424953937
Timeout : 300 (sec)
Verify return code: 20 (unable to get local issuer certificate)
---
DONE
Для меня часть цепи выглядит именно так, как и должна. Apache conf также должен быть в порядке:
root@i-can-haz-data ~ # cat /etc/apache2/sites-enabled/seafile.conf
<VirtualHost *:443>
ServerName seafile.mydomain.ch
DocumentRoot /opt/seafile/www
[... seafile specific things]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/custom/wildcardmydomain.ch.crt
SSLCertificateKeyFile /etc/ssl/custom/wildcardmydomain.ch.key
SSLCertificateChainFile /etc/ssl/custom/wildcardmydomain.ch.chain.crt
[... seafile specific things]
</VirtualHost>
Я не могу найти, в чем моя проблема ... (CA-сертификаты установлены на моем lubuntu 14.04). Их сайт не применим, потому что они связали свой сертификат класса 1, но мой выдан их класс 2.
apache-2.4
openssl
certificate-authority
Дионисий
источник
источник
-CApath /etc/ssl/certs/
или где хранятся ваши сертификаты? Возможно, вам не хватает корневого сертификата в цепочке?Ответы:
Эта ошибка OpenSSL означает, что программе не удалось проверить издателя сертификата или самый верхний сертификат предоставленной цепочки. Это может произойти в некоторых случаях, например:
Локальная база данных доверенных корневых сертификатов не была предоставлена и поэтому не запрашивалась OpenSSL. Чтобы явно указать путь к сертификатам, используйте параметр
-CApath
или-CAfile
. Для Debian и Ubuntu это, например:в результате чего либо
Последнему нужно больше информации. Существует открытый отчет об ошибках для OpenSSL в Ubuntu с 2009 года:
Независимо от того, что вы указываете как путь
-CApath
, он может работать, потому что для-CAfile
него также установлено значение по умолчанию (которое было пустым заранее). Так что не полагайтесь на поведение OpenSSL по умолчанию при проверке сертификатов локальной базой сертификатов, это может быть поддельным!источник