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

Парольная фраза Apache иногда работает

На одном из моих серверов я наблюдаю следующую проблему с парольной фразой SSL: некоторые сертификаты передают ее, не запрашивая пароль, а некоторые другие продолжают его запрашивать.

Я настроил его глобально:

SSLPassPhraseDialog exec:/path/to/passphrase

но когда я перезапускаю apache, он запрашивает у меня кодовую фразу для нескольких доменов, которые используют один и тот же подстановочный сертификат.

Есть идеи, что может вызвать это?

чтобы проверить кодовую фразу, я запустил

(openssl x509 -noout -modulus -in server.pem | openssl md5 ; openssl rsa -noout -modulus -in server.key | openssl md5) | uniq

и я получаю один хэш, что означает, что они совпадают, пароль одинаковый

 [Wed Mar 05 17:13:23 2014] [error] Init: Pass phrase incorrect
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218640442 error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 67710980 error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
 [Wed Mar 05 17:13:23 2014] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error

Как я могу проверить, вызвано ли это политикой selinux, когда я удаляю кодовую фразу, все начинает работать? Кстати, на данный момент SELinux отключен на моем сервере

Любая помощь ?

Я исправил эту проблему, это было связано с тем, что некоторые сертификаты были подписаны с другим паролем

echo "Password \$21"

и с

echo 'Password \$21'

Таким образом, обратная косая черта в первом примере была escape-символом для $, а во втором примере у нас есть обратная косая черта и $, используемые в пароле.

Написание простого скрипта решит эту проблему