На Ubuntu 12.04 LTS я получаю ошибку для ошибки проверки сертификата, если CApath явно не установлен
Попробованный несколько решений. Но ничто не работает. Это заставляет большую часть проблемы устанавливать новые пакеты в моей системе (попробованный, по крайней мере, в двух системах)
Успешная команда:
openssl s_client -connect secure.ogone.com:443 -showcerts -CApath /etc/ssl/certs/
Success with Verify return code: 0 (ok)
Неудачная команда
openssl s_client -connect secure.ogone.com:443 -showcerts
Failed with Verify return code: 20 (unable to get local issuer certificate)
Я попробовал следующее решение на основе ответов Wiki, но оно также не работает
openssl x509 -noout -hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1
openssl x509 -noout -subject_hash_old -in /etc/ssl/certs/GeoTrust_Global_CA.pem 7999be0d
openssl x509 -noout -subject_hash -in /etc/ssl/certs/GeoTrust_Global_CA.pem 2c543cd1
Я вижу различие в значениях хэш-функции
Я пытался добавить сценарий для создания символьной ссылки с -subject_hash_old
и -subject_hash
.
Но проблема продолжает происходить, и я получаю код ошибки Verify return code: 20 (unable to get local issuer certificate)
.
#!/bin/sh
Create following script to create symbolic links in /etc/ssl/certs
Link with subject_hash_old and subject_hash is successfully created
for FILE in /etc/ssl/certs/*.pem
do
hasholdsub=`openssl x509 -noout -subject_hash_old -in $FILE`
hashsub=`openssl x509 -noout -subject_hash -in $FILE`
echo $hasholdsub $hashsub
ln -s $FILE $hasholdsub.0
ln -s $FILE $hashsub.0
cat $FILE >> ca-certificats-gen.crt
done
Но эта проблема является все еще существующей
Помогите решить вопрос.
Попытайтесь использовать -CAfile
вместо -CApath
и укажите на единственный связанный файл сертификатов CA. Например:
openssl s_client -connect secure.ogone.com:443 -showcerts \
-CAfile /etc/ssl/certs/ca-certificates.crt
Это работает на меня, показывая verify return:1
и полная цепочка сертификата.
Справочная информация: Этим /etc/ssl/certs/ca-certificates.crt
управляют эти update-ca-certificates
команда, просто связывая все установленные сертификаты в масштабе всей системы, включая вручную установленных в /usr/local/share/ca-certificates/
.