Я согласен со всем, что упомянул БиллТор, но добавлю, что может потребоваться полная перестройка хранилища сертификатов, потому что иногда кажется, что update-ca-Certificates слишком старается, чтобы быть ленивым, и фактически не обновляет то, что должно ,
rm -f /usr/local/share/ca-certificates/certificate.crt
# --fresh is needed to remove symlinks to no-longer-present certificates
update-ca-certificates --fresh
Кроме того, обратите внимание, что после завершения update-ca-Certificates он должен связать файлы /etc/ssl/certs/*.pem
с соответствующими сертификатами в /usr/local/share/ca-certificates/
или /usr/share/ca-certificates/
. Как упомянул BillThor, также будет символическая ссылка на файл с отпечатком в виде имени - он будет похож на 349f2832.0
.
Ls -l может подтвердить это:
--snip--
lrwxrwxrwx 1 root root 72 Feb 6 2014 Security_Communication_EV_RootCA1.pem -> /usr/share/ca-certificates/mozilla/Security_Communication_EV_RootCA1.crt
lrwxrwxrwx 1 root root 69 Mar 25 2014 Security_Communication_RootCA2.pem -> /usr/share/ca-certificates/mozilla/Security_Communication_RootCA2.crt
lrwxrwxrwx 1 root root 69 Feb 6 2014 Security_Communication_Root_CA.pem -> /usr/share/ca-certificates/mozilla/Security_Communication_Root_CA.crt
lrwxrwxrwx 1 root root 61 Feb 6 2014 Sonera_Class_1_Root_CA.pem -> /usr/share/ca-certificates/mozilla/Sonera_Class_1_Root_CA.crt
--snip--
Также обратите внимание, что * .crt и * .pem - это один и тот же файл. Это означает, что исходный файл .crt должен быть в формате .pem.
Файл формата .pem выглядит так:
-----BEGIN CERTIFICATE-----
MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
--snip--
IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
O+7ETPTsJ3xCwnR8gooJybQDJbw=
-----END CERTIFICATE-----
Вы можете проверить установку сертификата, запустив openssl для сертификата:openssl x509 -in /etc/ssl/certs/[certname].pem -noout -text
и openssl x509 -in /usr/local/share/ca-certificates/[certname].pem -noout -text
(конечно, заменяя [certname])
Вы должны увидеть обширную информацию о вашем сертификате, и оба должны совпадать (так как с символической ссылкой они должны быть в одном файле).
Если они не совпадают, вы должны повторно запустить update-ca-certificates --fresh
Если они вообще не выводят полезную информацию, то вам нужно проверить свой сертификат и убедиться, что он в правильном формате PEM.
РЕДАКТИРОВАТЬ: BillThor упомянул, что это не будет работать для Java, но похоже, что по крайней мере на Debian, хранилище сертификатов Java также обновляется с помощью инструмента update-ca-Certificates. Я не знаю о других вещах в linux, которые используют альтернативное хранилище сертификатов, кроме, возможно, Wine с приложением Adobe Air.