Назад | Перейти на главную страницу

Ошибка самоподписанного сертификата Apache: процедуры кодирования asn1: ASN1_CHECK_TLEN: неправильный тег

Может ли кто-нибудь увидеть, где я ошибся на этих этапах (в Windows XP + Apache 2.2)?

Я попытался создать свой собственный самоподписанный сертификат SSL с моим собственным ЦС, и когда все будет сделано, мой сервер Apache не запустится, и в моем файле журнала будет сказано:

[info] Init: Seeding PRNG with 136 bytes of entropy
[info] Loading certificate & private key of SSL-aware server
[error] Init: Unable to read server certificate from file C:/Apache2.2/conf/thor.mysite.com_cert/ksb_cert_rep.p12
[error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
[error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
[error] SSL Library Error: 218640442 error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error

Вот что я сделал для создания сертификата:

openssl req -x509 -out ca_cert.pem -newkey rsa:2048 -keyout ca_priv_key.pem -days 3650
openssl x509 -in ca_cert.pem -text -noout
openssl req -out ksb_cert_req.pem -new -keyout ksb_priv_key.pem
openssl req -noout -text -verify -in ksb_cert_req.pem
openssl x509 -req -in ksb_cert_req.pem -CA ca_cert.pem -CAkey ca_priv_key.pem -CAcreateserial -out ksb_cert_rep.pem -days 3650
openssl pkcs12 -export -in ksb_cert_rep.pem -inkey ksb_priv_key.pem -out ksb_cert_rep.p12 -name "ksb certificate"
openssl pkcs12 -info -in ksb_cert_rep.p12
openssl rsa -in ksb_priv_key.pem -out ksb_priv_key_nopass.pem

Кроме того, вот конфигурация в моем файле Apache httpd-ssl.conf:

SSLCertificateFile "C:/Apache2.2/conf/ksb_cert_rep.p12"
SSLCertificateKeyFile "C:/Apache2.2/conf/ksb_priv_key_nopass.pem"

Apache не любит сертификаты формата PKCS12, он ожидает x509. Используйте ваш ksb_cert_rep.pem файл вместо этого.