Привет. Вы пробовали выполнить следующую команду,
openssl s_client -connect myupload.mysite.net:443/cgi-bin/posupload.cgi -status -cert client.pem -verify 1 -showcerts
Обратите внимание на verify 1 . Он сообщает ssl, насколько глубоко он должен зайти, и я думаю, что это может быть проблема, с которой вы столкнулись в вашей конфигурации apache. Попробуйте установить конфигурацию apache,
SSLVerifyDepth 1
Ура, Декстер
Хорошо, я наконец выяснил, в чем проблема, и хотел бы поделиться ею на случай, если кто-то тоже застрянет с этим сообщением об ошибке.
Конфигурационный файл Apache содержит следующие строки, когда он говорит о CA:
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
# huge file containing all of them (file must be PEM encoded)
# Note: Inside SSLCACertificatePath you need hash symlinks
# to point to the certificate files. Use the provided
# Makefile to update the hash symlinks after changes.
Это означает, что каждый файл сертификата в этом каталоге, на который указывает SSLCACertificatePath, должен использовать символическую ссылку. И, что наиболее важно, имя каждой символической ссылки должно быть хеш-значением субъекта каждого сертификата. Вы можете найти хэш-значение сертификата CA, выполнив эту команду:
openssl x509 -subject_hash -in *cacert.pem*
Итак, если хеш-значение было 0434423b, в каталоге, на который указывает SSLCACertificatePath, вы должны создать две символические ссылки, указывающие на сертификат в каталоге:
0434423b -> /etc/apache2/certs/mypos.pem
0434423b.0 -> /etc/apache2/certs/mypos.pem
Это должно решить проблему. Конечно, если бы я использовал SSLCACertificateFile, не думаю, что у меня было бы столько проблем.
Я обнаружил, что команда "sudo update-ca-Certific --fresh" автоматически генерирует символические ссылки из хеш-значения субъекта. каждого сертификата к сертификату.