Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

shrikes
Сообщения: 126
ОС: Gentoo Linux

Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

Настроил Apache 2 с поддержкой SSL, но при запуске выдает вот что

Код: Выделить всё

[Mon Jul 31 18:22:18 2006] [info] Init: Initializing OpenSSL library
[Mon Jul 31 18:22:18 2006] [info] Init: Seeding PRNG with 1024 bytes of entropy
[Mon Jul 31 18:22:18 2006] [info] Loading certificate & private key of SSL-aware server
[Mon Jul 31 18:22:18 2006] [error] Server should be SSL-aware but has no certificate configured [Hint: SSLCertificateFile]


не могу понять в чем причина, настраивал вот по этой статье
http://www.opennet.ru/base/sec/ssl_cert.txt.html

вот мои настройки mod_ssl

Код: Выделить всё

LoadModule ssl_module    modules/mod_ssl.so

SSLEngine on
SSLRandomSeed startup file:/dev/urandom 1024
SSLRandomSeed connect file:/dev/urandom 1024

SSLOptions +StrictRequire
SSLProtocol -all +TLSv1 +SSLv3
SSLCipherSuite HIHG:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
SSLProxyEngine off

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

SSLPassPhraseDialog  builtin
SSLSessionCache         shm:/var/cache/apache2/ssl_scache(512000)
SSLSessionCacheTimeout  600
SSLMutex  file:/var/cache/apache2/ssl_mutex

SSLProxyVerify none
SSLProxyEngine off

#SSLCertificateFile /etc/ssl/servers/certs/xxxxx.xxx.xx.crt
#SSLCertificateKeyFile /etc/ssl/servers/certs/xxxxx.xxx.xx.key
SSLCACertificateFile /etc/ssl/ca.crt


В файле конфигурации все ок, не могу понять где на грабли наступил....нужна помощь, кто сталкивался подскажите, или ткните носом где искать!
Спасибо сказали:
shrikes
Сообщения: 126
ОС: Gentoo Linux

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

Код: Выделить всё

[Tue Aug 01 09:55:41 2006] [info] Init: Initializing OpenSSL library
[Tue Aug 01 09:55:41 2006] [info] Init: Seeding PRNG with 1024 bytes of entropy
[Tue Aug 01 09:55:41 2006] [info] Loading certificate & private key of SSL-aware server
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_pphrase.c(469): unencrypted RSA private key - pass phrase not required
[Tue Aug 01 09:55:41 2006] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Tue Aug 01 09:55:41 2006] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Tue Aug 01 09:55:41 2006] [info] Init: Initializing (virtual) servers for SSL
[Tue Aug 01 09:55:41 2006] [info] Configuring server for SSL protocol
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(405): Creating new SSL context (protocols: SSLv3, TLSv1)
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(530): Configuring client authentication
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(1095): CA certificate: /C=XX/ST=XXXX REGION/L=XXXX/O=XXXX/OU=XXXX/CN=xxxxx.xxx.xx
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(588): Configuring permitted SSL ciphers [HIHG:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM]
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(716): Configuring RSA server certificate
[Tue Aug 01 09:55:41 2006] [warn] RSA server certificate CommonName (CN) `xxxxx.xxx.xx' does NOT match server name!?
[Tue Aug 01 09:55:41 2006] [debug] ssl_engine_init.c(755): Configuring RSA server private key


А что могут значить эти строки...это как доменное имя самого апача должно соответствовать CN или как
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение sash-kan »

shrikes
кстати, у меня такая же фигня. пробовал при создании сертификата разные имена - и localhost, и полное dns-имя, и то, что выдает команда hostname. все равно - вылазит warn о том, что имя в сертификате не соответствует имени хоста.
какое там должно быть имя - пока на разобрался. да и не особо спешил, потому как некритично (warning - это все-таки не error).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
shrikes
Сообщения: 126
ОС: Gentoo Linux

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

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)

и никак не конектиться
Спасибо сказали:
shrikes
Сообщения: 126
ОС: Gentoo Linux

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

А вот что в логах появилось после добавления SSLVerifyClient require, SSLVerifyDepth 1

Код: Выделить всё

[Tue Aug 01 14:22:05 2006] [debug] ssl_engine_kernel.c(1214): Certificate Verification: depth: 0, subject: /C=XX/ST=XXXX REGION/L=XXXX/O=XXXXX/OU=XXXX/CN=xxxxx.xxx.xx, issuer: /C=XX/ST=XXXX REGION/L=XXXX/O=XXXXX/OU=XXXX/CN=xxxxx.xxx.xx
[Tue Aug 01 14:22:05 2006] [error] Certificate Verification: Error (18): self signed certificate
[Tue Aug 01 14:22:05 2006] [debug] ssl_engine_kernel.c(1794): OpenSSL: Write: SSLv3 read client certificate B
[Tue Aug 01 14:22:05 2006] [debug] ssl_engine_kernel.c(1813): OpenSSL: Exit: error in SSLv3 read client certificate B
[Tue Aug 01 14:22:05 2006] [debug] ssl_engine_kernel.c(1813): OpenSSL: Exit: error in SSLv3 read client certificate B
[Tue Aug 01 14:22:05 2006] [info] SSL library error 1 in handshake (server xxxxx.xxx.xx:443, client 11.11.1.11)
[Tue Aug 01 14:22:05 2006] [info] SSL Library Error: 336105650 error:140890B2:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:no certificate returned
[Tue Aug 01 14:22:05 2006] [info] Connection to child 1 closed with abortive shutdown(server xxxxx.xxx.xx:443, client 11.11.1.1)
Спасибо сказали:
shrikes
Сообщения: 126
ОС: Gentoo Linux

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

Наконец-то заработало, не совсем правильно сгенерил сертификаты....
Кстати вопрос....а обязательно нужно импортировать ca.crt в клиентский броузер? Или я че-то не так перевел...

http://www.pseudonym.org/ssl/ssl_cook.html -- хорошая дока...по ней все получилось...с небольшими изменениями
Спасибо сказали:
shrikes
Сообщения: 126
ОС: Gentoo Linux

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение shrikes »

Появилась куча новых вопросов, взгляните на этот скриншот, что я не так сделал. Вроде бы и ca.crt импортировал в броузер и сертификат....а вот что мне выдал броузер
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Apache+SSL и авторизация с помощью клиентских SSL сертификатов

Сообщение sash-kan »

shrikes
ты же сертификат сам себе генерировал. а не получил от доверенного регистратора (из тех, кому доверяет ie). вот про это браузер тебе и говорит.

а еще может ты что-то с датами напутал. или у клиента/сервера неправильно время выставлено.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: