Недавно я стал новым администратором старой системы, к которой все подходят с менталитетом «не трогайте, иначе это может сломаться». Теперь мне говорят «потрогать и не сломать!»
Задача: Что мне делать: удалить с сервера доменное имя www.domain1.com и заменить его на www.domain2.com.
Справочная информация: www.domain1.com использует сертификат SSL для размещения SOAP и защищенного сайта поиска данных.
Сервер давно устарел. Это сервер Fedora 4 с Apache 2.2.0, tomcat 5.5.7 и openssl 0.9.7f.
Я пытаюсь: Настроить www.domain2.com на сервере с сертификатом SSL, чтобы наши деловые отношения могли получить доступ к SOAP с www.domain2.com/SOAP. Тогда мы переместим и другие наши веб-сайты.
Путь первый: я хотел настроить два домена на одном IP-адресе (1.1.1.1). Чтобы было проще. Однако это не выглядит таким простым или безопасным (см. Ссылки внизу). Я обнаружил, что у меня недостаточно новых версий Apache или openssl для этого.
Второй путь: я решил посмотреть, что мне нужно сделать, чтобы обновить их, это привело к обнаружению, что yum и apt-get больше не имеют зеркал для FC4. Я нашел в Интернете версии, которые можно было установить вручную. Я не хочу идти этим путем, потому что сомневаюсь, что смогу отменить изменения. Я не люблю надеяться на серебряную пулю, которая тоже может убить меня, если я промахнусь.
У меня есть:
Поскольку путь, по которому я шел, не представляется возможным, я подумал, что могу настроить www.domain2.com на 1.1.1.2. С новой установкой Apache, которая затем могла также связываться с tomcat, чтобы предоставить доступ к SOAP.
Вопросы:
Текущий httpd-ssl.conf (комментарии удалены):
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/usr/local/apache-2.2.0/logs/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache-2.2.0/logs/ssl_mutex
##
## SSL Virtual Host Context
##
<VirtualHost *:443>
ServerName domain1.com
ServerAdmin webmaster@www.domain1.com
DocumentRoot /www/www.domain.com
ErrorLog logs/sslerror_log
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
TransferLog logs/ssltransfer_log
JkMount /domain1app1/* ajp13
JkMount /domain1app2/* ajp13
JkMount /SOAPdomain1app3/* ajp13
JkMount /InformationRetrevaldoamin1app4/* ajp13
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache-2.2.0/conf/domain1.crt
SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain1.key
SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
Есть ли у кого-нибудь предложения относительно дальнейших действий? Я ищу самое маленькое изменение, которое "можно отменить", если я его испорчу. Мой ящик для инструментов довольно маленький, когда дело касается таких вещей. Любая помощь будет принята с благодарностью! Если у вас есть способ сделать это, о котором я не думал, дайте мне знать. :) О, и мой босс хотел бы, чтобы я получил сертификат ssl в субботу в течение 4-часового окна обслуживания. Если это невозможно, я могу отложить до следующего.
Заранее спасибо!
Отредактировано для удобства чтения.
Ссылки:
Несколько доменов SSL на одном IP-адресе и одном порту?
Сайт SSL не использует правильный IP-адрес в Apache и Ubuntu
Вам не следует устанавливать новый Apache. В любом случае Apache, вероятно, был установлен из пакетов RPM, поэтому второй Apache можно было установить только вручную. На мой взгляд, суеты такого рода лучше избегать. Однако у вас есть другие варианты.
Опция 1: Вы можете настроить Apache для обработки обоих сайтов. Для этого вам необходимо:
Это действительно копипаст из текущей конфигурации с небольшими изменениями. Здесь должна выглядеть конфигурация. Таким образом, www.domain1.com и www.domain2.com обслуживают один и тот же контент, поскольку директивы JkMount остались прежними.
Вы должны скопировать текущий файл httpd-ssl.conf перед редактированием, поэтому в случае, если я что-то напортачил в конфигурации, вы можете скопировать оригинал и перезапустить сервер.
Вариант 2: Если вам нужно изменить только доменное имя, вам действительно не нужно ничего трогать. Регистрация нового домена не имеет ничего общего с Apache. После завершения регистрации DNS-серверы преобразуют www.domain2.com в 1.1.1.1 (то, что раньше было www.domain1.com). Как только это будет сделано и домен domain1.com будет удален, вам нужно будет заменить только директиву ServerName и сертификаты.
Если вам необходимо, чтобы два домена сосуществовали независимо от того, как долго, перейдите к 1.
Вариант 3: Если вы просто добавите
ServerAlias www.domain2.com
в существующую конфигурацию внутри определения VirtualHost, Apache по-прежнему будет обслуживать оба домена (на одном IP-адресе). Однако в этом случае у вас не может быть разных сертификатов для двух доменов.
-
Вот модифицированная конфигурация для Варианта 1:
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/usr/local/apache-2.2.0/logs/ssl_scache(512000)
SSLSessionCacheTimeout 300
SSLMutex file:/usr/local/apache-2.2.0/logs/ssl_mutex
NameVirtualHost 1.1.1.1:443
NameVirtualHost 1.1.1.2:443
##
## SSL Virtual Host Context
##
<VirtualHost 1.1.1.1:443>
ServerName domain1.com
ServerAdmin webmaster@www.domain1.com
DocumentRoot /www/www.domain.com
ErrorLog logs/sslerror_domain1_log
CustomLog logs/ssl_request_domain1_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
TransferLog logs/ssltransfer_domain2_log
JkMount /domain1app1/* ajp13
JkMount /domain1app2/* ajp13
JkMount /SOAPdomain1app3/* ajp13
JkMount /InformationRetrevaldoamin1app4/* ajp13
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache-2.2.0/conf/domain1.crt
SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain1.key
SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate_for_domain1.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
<VirtualHost 1.1.1.2:443>
ServerName domain2.com
ServerAdmin webmaster@www.domain2.com
DocumentRoot /www/www.domain.com
ErrorLog logs/sslerror_domain2_log
CustomLog logs/ssl_request_domain2_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
TransferLog logs/ssltransfer_domain2_log
JkMount /domain1app1/* ajp13
JkMount /domain1app2/* ajp13
JkMount /SOAPdomain1app3/* ajp13
JkMount /InformationRetrevaldoamin1app4/* ajp13
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/apache-2.2.0/conf/domain2.crt
SSLCertificateKeyFile /usr/local/apache-2.2.0/conf/domain2.key
SSLCertificateChainFile /usr/local/apache-2.2.0/conf/intermediate_for_domain2.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>