sash-kan писал(а): ↑01.08.2006 13:49
shrikes
кстати, у меня такая же фигня. пробовал при создании сертификата разные имена - и localhost, и полное dns-имя, и то, что выдает команда hostname. все равно - вылазит warn о том, что имя в сертификате не соответствует имени хоста.
какое там должно быть имя - пока на разобрался. да и не особо спешил, потому как некритично (warning - это все-таки не error).
Вот, проблему эту я решил....вот как это делаеться
Сначала сгенери самоподписанный сертификат
Код: Выделить всё
openssl req -new -newkey rsa:1024 -nodes -keyout ca.key -x509 -days 365 -out ca.crt
Потом ключ и запрос для клиента, к примеру так:
Код: Выделить всё
openssl req -new -newkey rsa:1024 -nodes -keyout 11.11.1.11.key -out 11.11.1.11.csr
Создай вот такой файл ca.clients
Код: Выделить всё
[ ca ]
default_ca = CA_CLIENT
[ CA_CLIENT ]
dir = /etc/ssl/clients
certs = $dir/certs
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
certificate = /etc/ssl/ca.crt
private_key = /etc/ssl/ca.key
default_days = 365
default_crl_days = 7
default_md = md5
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
сгенери сертификат для клиента
Код: Выделить всё
openssl ca -config /etc/ssl/ca.clients -in /etc/ssl/clients/certs/11.11.1.11.csr -out /etc/ssl/clients/certs/11.11.1.11.crt -batch
Создай теперь файл ca.servers такого содержания
Код: Выделить всё
[ ca ]
default_ca = CA_SERVER
[ CA_SERVER ]
dir = /etc/ssl/servers
certs = $dir/certs
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
certificate = /etc/ssl/ca.crt
private_key = /etc/ssl/ca.key
default_days = 365
default_crl_days = 7
default_md = md5
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
distinguished_name = req_distinguished_name
[ req_distinguished_name ]
Сгенери подобно как для клиента пару ключ-сертификат для сервака (он ведь материться на их отсутствие)...ипропиши
Код: Выделить всё
SSLCACerticateFile /etc/ssl/ca.crt
SSLCertificateFile /etc/ssl/servers/certs/server.crt
SSLCertificateKeyFile /etc/ssl/servers/certs/server.key
У меня заработало, но вот новые грабли, вот что пишут логи
Код: Выделить всё
[Tue Aug 01 13:29:40 2006] [info] Connection: Client IP: 11.11.1.11, Protocol: SSLv3, Cipher: RC4-MD5 (128/128 bits)
[Tue Aug 01 13:29:40 2006] [debug] ssl_engine_io.c(1522): OpenSSL: I/O error, 5 bytes expected to read on BIO#8234678 [mem: 823bcf8]
[Tue Aug 01 13:29:40 2006] [info] (70014)End of file found: SSL input filter read failed.
[Tue Aug 01 13:29:40 2006] [debug] ssl_engine_kernel.c(1794): OpenSSL: Write: SSL negotiation finished successfully
[Tue Aug 01 13:29:40 2006] [info] Connection to child 0 closed with standard shutdown(server xxxxx.xxx.xx:443, client 11.11.1.11)
и никак не конектиться