Подскажите пожалуйста как подружить OpenSSL 0.9.7f и Apache 2.0.53 ?
Пробовал настраивать по нескольким докам (по четырём - все отсюда) и всё равно работать браузер (проверял на lynx и Konquerror) через HTTPS отказывался...
--------------------------------------
Сертификаты создавал следующим образом
--------------------------------------
1. Создание закрытого ключа и самоподписанного сертификата:
$ openssl req -new -newkey rsa:4096 -nodes -keyout ca.key -x509 -days 3000 \
-subj /C=RU/L=SPB/O=Home/CN=secure.my-tests -out ca.crt
В результате появляется 2 файла:
ca.key - закрытый ключ
ca.crt - самоподписанный сертификат
2. Создание сертификата сервера:
1) создаём конфиг "ca.config"
[ ca ]
default_ca = CA_DEFAULT
[ CA_DEFAULT ]
dir = ./db # каталог для служебных файлов
certs = $dir/certs # каталог для сертификатов
new_certs_dir = $dir/newcerts # каталог для новых сертификатов
database = $dir/index.txt # файл с БД подписанных сертификатов
serial = $dir/serial # файл с серийником сертификата (HEX)
certificate = ./ca.crt # файл сертификата CA
private_key = ./ca.key # файл закрытого ключа CA
RANDFILE = /var/log/messages
default_days = 3650 # срок действия подписываемого сертификата
default_crl_days = 7 # срок действия CRL
default_md = md5 # алгоритм подписи
# Название секции с описанием политики в отношении данных сертификата
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied # должен содержать имя домена - обязателен
emailAddress = optional
2) создаём структуру каталогов
$ mkdir db
$ mkdir db/certs
$ mkdir db/newcerts
$ touch db/index.txt
$ echo "01" > db/serial
3) создание серверного закрытого ключа и запроса на сертификат:
$ openssl req -new -newkey rsa:4096 -nodes -keyout server.key \
-subj /C=RU/L=SPB/O=Home/CN=secure.my-tests -out server.csr
В результате появляется 2 файла:
server.key - закрытый ключ сервера
server.csr - запрос на сертификат
4) подпись запроса на сертификат (CSR) с помощью доверенного сертификата (CA)
$ openssl ca -config ca.config -in server.csr -out server.crt -batch
В результате появляется файл сертификата "server.crt"
5) подготовка данных для передачи клиенту (этот шаг даже и не знаю, нужен или нет)
$ openssl pkcs12 -export -in server.crt -inkey server.key -certfile ca.crt \
-out server.p12 -passout pass:123456
---------------------------------------
Файл "/usr/local/apache2/conf/ssl.conf"
---------------------------------------
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
<IfDefine SSL>
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache2/logs/ssl_mutex
<VirtualHost _default_:443>
DocumentRoot "/www/secure.my-tests"
ServerName secure.my-tests:443
ServerAdmin cs@localhost
ErrorLog /usr/local/apache2/logs/secure_error_log
TransferLog /usr/local/apache2/logs/secure_access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
SSLCACertificateFile /usr/local/apache2/conf/ssl.crt/ca.crt
SSLVerifyClient require
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/www/secure.my-tests">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/apache2/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</IfDefine>
-----------------
В эррор-секьюр-логе (/usr/local/apache2/logs/secure_error_log) после остановки и запуска индейца с новыми параметрами было следующее:
[Sat Apr 09 04:07:34 2005] [warn] Init: Oops, you want to request client authentication, but no CAs are known for verification!? [Hint: SSLCACertificate*]
--------------------------------------------------------------------------
Если где-чего напутал тыкните пальцем.
Как с этим справиться ? Как заставить lynx (или любой другой браузер) работать через HTTPS ?