Два ssl сертификата на 1 Apache

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

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

Аватара пользователя
susik
Сообщения: 81

Два ssl сертификата на 1 Apache

Сообщение susik »

Имеется один сервер с внутренним IP 10.1.18.6 на нем запущенн сервер Apache есть домен client.bank-express.ru. В апаче настроен виртуальный сервер для сертификатов
<VirtualHost _default_:443>
ServerName client.bank-express.ru
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/iweb.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/iweb.key
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/thawteintermediate.crt
DocumentRoot /usr/local/www/ibank/docs/rt_ic
Alias /ocx/ /usr/local/www/ibank/ocx/
ErrorDocument 404 https://client.bank-express.ru/v20050128/404.htm
..................
.................
</VirtualHost>
Был получен еще один домен client.bank.ru. В сервере имен был сделан CNAME. Был получен сертификат на новый домен client.bank.ru. С помощью конструкции был изменен конфиг
NameVirtualHost 10.1.18.6
<VirtualHost 10.1.18.6:443>
ServerName client.bank-express.ru

SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/iweb.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/iweb.key
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/thawteintermediate.crt
DocumentRoot /usr/local/www/ibank/docs/rt_ic
Alias /ocx/ /usr/local/www/ibank/ocx/
ErrorDocument 404 https://client.bank-express.ru/v20050128/404.htm
..................
.................
</VirtualHost>
VirtualHost 10.1.18.6:443>
ServerName client.bank.ru

SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/iweb-ab.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/iweb-ab.key
SSLCACertificateFile /usr/local/apache/conf/ssl.crt/thawteintermediate.crt
DocumentRoot /usr/local/www/ibank/docs/rt_ic
Alias /ocx/ /usr/local/www/ibank/ocx/
ErrorDocument 404 https://client.bank.ru/v20050128/404.htm
..................
.................
</VirtualHost>

Но проблема в том что ssl сертификат берется из конвига первый по очереди. Тоесть если писать http://client.bank-express.ru ВСЕ ОК если напис ать http://client.bankru то пишет что сертификат не соответствует имени, соответственно если поменять в конфиге местами то будет наоборот.
Вопрос Что можно придумать???? Вообще работает ли на no_IP virtualServer два разный ssl сертификата???
Все работает через фаервол есть, есть 2 сетевая карта может быть тогда сделать еще один ИП внутренний и привязать его к новому домену и настроить маршрутизацию, но это очень плохой вариант так как доступа к DNS и firewall нету. Реально ли все сделать средствами Apache???
Они не были Боги, откуда им знать про добро и зло?
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: Два ssl сертификата на 1 Apache

Сообщение elide »

насколько я знаю, это не работает. где-то читал, что это у апача такое ограничение - только один сертификат.
хотя может сейчас что-то изменилось....
слава роботам!
Спасибо сказали:
Аватара пользователя
susik
Сообщения: 81

Re: Два ssl сертификата на 1 Apache

Сообщение susik »

elide писал(а):
15.01.2006 15:31
насколько я знаю, это не работает. где-то читал, что это у апача такое ограничение - только один сертификат.
хотя может сейчас что-то изменилось....

Блин нашел ответ который прадв меня немного огорчил:
Можно делать несколько виртаульных серверов ы ssl но они должны базироваться на IP или портах, а в моем случае no IP не подходит
Буду думать как сделать со 2 ИП.
Они не были Боги, откуда им знать про добро и зло?
Спасибо сказали:
Аватара пользователя
susik
Сообщения: 81

Re: Два ssl сертификата на 1 Apache

Сообщение susik »

susik писал(а):
15.01.2006 15:52
elide писал(а):
15.01.2006 15:31

насколько я знаю, это не работает. где-то читал, что это у апача такое ограничение - только один сертификат.
хотя может сейчас что-то изменилось....

Блин нашел ответ который прадв меня немного огорчил:
Можно делать несколько виртаульных серверов ы ssl но они должны базироваться на IP или портах, а в моем случае no IP не подходит
Буду думать как сделать со 2 ИП.

Ответ то нашел вот тока сделать че то не получается:-(
Они не были Боги, откуда им знать про добро и зло?
Спасибо сказали:
7biohazard7
Сообщения: 618
Статус: Любитель SUSE
ОС: Suse 11.2

Re: Два ssl сертификата на 1 Apache

Сообщение 7biohazard7 »

А в чем проблемы, просвятите нас. Может чем поможем.
Спасибо сказали:
Аватара пользователя
susik
Сообщения: 81

Re: Два ssl сертификата на 1 Apache

Сообщение susik »

7biohazard7 писал(а):
15.01.2006 20:01
А в чем проблемы, просвятите нас. Может чем поможем.

Ну вообщем создал тестовую среду. Значит имею у сервер с сетевой картой. Сделал на нее алиас, прописал в ДНС. Значит теперь есть два домена 1) tractor 10.1.1.217 2)tractor-test 10.1.1.218
Задача сделать два виртуальных домена с 2 разными сертификатами. Делаю IP virtualServer. Сконфигурировал. Стартую apachectl startssl запрашивается пароль только на 1 сертификат соответсвенно и работает только 1 сертификат :-( как я только в конфиге не пытался работает либо 1 сертификат либо другой а оба не работают :-(
Вот мой конфиг я его немного обрезал на все коментарии
#
## httpd.conf -- Apache HTTP server configuration file
##
#
ServerType standalone
#
ServerRoot "/usr/local/apache"
#LockFile /usr/local/apache/logs/httpd.lock
PidFile /usr/local/apache/logs/httpd.pid
#
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
#ResourceConfig /etc/srm.conf
#AccessConfig /etc/access.conf
#
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
#
BindAddress *
# LoadModule foo_module libexec/mod_foo.so
<IfDefine SSL>
LoadModule ssl_module /usr/libexec/libssl.so
</IfDefine>
ClearModuleList
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_so.c
AddModule mod_setenvif.c
<IfDefine SSL>
AddModule mod_ssl.c
</IfDefine>
#ExtendedStatus On
#
Port 80
<IfDefine SSL>
Listen 80
Listen 443
</IfDefine>
User nobody
Group nobody
#
ServerAdmin root@tractor.e-business.bank.ru
ServerName tractor.e-business.bank.ru
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
<IfModule mod_userdir.c>
UserDir public_html
</IfModule>
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>
AccessFileName .htaccess
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>
#CacheNegotiatedDocs
#
UseCanonicalName On
<IfModule mod_mime.c>
TypesConfig /etc/mime.types
</IfModule>
DefaultType text/html
AddDefaultCharset windows-1251
#
<IfModule mod_mime_magic.c>
MIMEMagicFile /etc/magic
</IfModule>
HostnameLookups Off
ErrorLog /usr/local/logs/error_log
LogLevel warn
#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
#LogFormat "%{Referer}i -> %U" referer
#LogFormat "%{User-agent}i" agent
CustomLog /usr/local/logs/access_log common
#CustomLog /usr/local/logs/referer_log referer
#CustomLog /usr/local/logs/agent_log agent
#
#CustomLog /usr/local/logs/access_log combined
ServerSignature On
# > AddType text/html .ahtml
# > EBCDICConvert Off=InOut .ahtml
#
# EBCDICConvertByType On=InOut text/* message/* multipart/*
# EBCDICConvertByType On=In application/x-www-form-urlencoded
# EBCDICConvertByType On=InOut application/postscript model/vrml
# EBCDICConvertByType Off=InOut */*
<IfModule mod_alias.c>
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /manual/ "/var/www/html/manual/"
<Directory "/var/www/html/manual">
Options Indexes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ "/var/www/html/cgi-bin/"
<Directory "/var/www/html/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</IfModule>
<IfModule mod_autoindex.c>
IndexOptions FancyIndexing
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

</IfModule>
<IfModule mod_mime.c>
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
AddLanguage de .de
AddLanguage el .el
AddLanguage he .he
AddCharset ISO-8859-8 .iso8859-8
AddLanguage it .it
AddLanguage ja .ja
AddCharset ISO-2022-JP .jis
AddLanguage kr .kr
AddCharset ISO-2022-KR .iso-kr
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddCharset ISO-8859-2 .iso-pl
AddLanguage pt .pt
AddLanguage pt-br .pt-br
AddLanguage ltz .lu
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .sv
AddLanguage cs .cz .cs
AddLanguage ru .ru
AddLanguage zh-TW .zh-tw
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251
AddCharset CP866 .cp866
AddCharset ISO-8859-5 .iso-ru
AddCharset KOI8-R .koi8-r
AddCharset UCS-2 .ucs2
AddCharset UCS-4 .ucs4
AddCharset UTF-8 .utf8
<IfModule mod_negotiation.c>
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
</IfModule>
AddType application/x-tar .tgz
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
#AddType application/x-compress .Z
#AddType application/x-gzip .gz .tgz
#
#AddHandler cgi-script .cgi
#AddType text/html .shtml
#AddHandler server-parsed .shtml
#AddHandler send-as-is asis
#AddHandler imap-file map
#AddHandler type-map var
</IfModule>
#MetaDir .web
#MetaSuffix .meta
#ErrorDocument 500 "The server made a boo boo.
#ErrorDocument 404 /missing.html
#ErrorDocument 404 /cgi-bin/missing_handler.pl
#ErrorDocument 402 http://www.example.com/subscription_info.html
<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
</IfModule>
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .example.com
#</Location>
#<Location /cgi-bin/phf*>
# Deny from all
# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>
# Use name-based virtual hosting.
#
#NameVirtualHost 10.1.1.217
#<VirtualHost _default_:*>
#</VirtualHost>
<IfDefine SSL>
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
</IfDefine>

<IfModule mod_ssl.c>
SSLPassPhraseDialog builtin
#SSLSessionCache none
#SSLSessionCache shmht:/usr/local/apache/logs/ssl_scache(512000)
#SSLSessionCache shmcb:/usr/local/apache/logs/ssl_scache(512000)
SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache/logs/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random 512
#SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/random 512
#SSLRandomSeed connect file:/dev/urandom 512
SSLLog /usr/local/logs/ssl_engine_log
SSLLogLevel info
</IfModule>
<IfDefine SSL>

<VirtualHost 10.1.1.217:443>
DocumentRoot "/var/www/html"
ServerName tractor.e-business.bank.ru
ServerAdmin root@tractor.e-business.bank.ru
ErrorLog /usr/local/logs/error_log
TransferLog /usr/local/logs/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl.crt/tractor.crt
SSLCertificateKeyFile /etc/ssl.key/tractor.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/html/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

<VirtualHost 10.1.1.218:443>
DocumentRoot "/var/www/html/1"
ServerName tractor-test.e-business.bank.ru
ServerAdmin root@tractor.e-business.bank.ru
ErrorLog /usr/local/logs/error_log
TransferLog /usr/local/logs/access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /etc/ssl.crt/tractor-test.crt
SSLCertificateKeyFile /etc/ssl.key/tractor-test.key
#SSLVerifyClient require
#SSLVerifyDepth 10
#<Location />
#SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \
# and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
# and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
# and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
# and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
# or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
#</Location>
SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/html/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /usr/local/logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>
</IfDefine>






pachectl configtest
Syntax OK
[root@tractor etc]# httpd -S
VirtualHost configuration:

apachectl startssl
Apache/1.3.33 mod_ssl/2.8.22 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.

Server tractor-test.e-business.bank.ru:443 (RSA)
Enter pass phrase:

Ok: Pass Phrase Dialog successful.
/usr/sbin/apachectl startssl: httpd started tractor-test
Ну вообщем стартуем тока с 1 сертификатом, можно менять местами загружается только 1 сертификат
root 18826 1 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
nobody 18827 18826 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
nobody 18828 18826 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
nobody 18829 18826 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
nobody 18830 18826 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
nobody 18831 18826 0 23:24 ? 00:00:00 /usr/sbin/httpd -DSSL
Они не были Боги, откуда им знать про добро и зло?
Спасибо сказали:
Аватара пользователя
susik
Сообщения: 81

Re: Два ssl сертификата на 1 Apache

Сообщение susik »

В ообщем пришел на работу сегодня с этим конфигом все работает 2 сертификата на virtualServer IP.
Они не были Боги, откуда им знать про добро и зло?
Спасибо сказали: