Fedora 4,Apache 2.2.0,tomcat 5.5.7,openssl 0.9.7f,SSL证书,域名和IP地址

我最近成了一个旧系统的新pipe理员,每个人都用“不要碰它或者可能会打破”的心态来接近。 现在我被告知要“触摸它,不要打破它!”

任务:我应该做的:从服务器上删除一个域名www.domain1.com,并用www.domain2.comreplace它。

背景:www.domain1.com使用SSL证书来托pipeSOAP和受保护的数据检索网站。
服务器已经过时了。 它是一个Apache 2.2.0的Fedora 4服务器,tomcat 5.5.7和openssl 0.9.7f。

我正在尝试:使用SSL证书在服务器上设置www.domain2.com,以便我们的业务关系从www.domain2.com/SOAP访问SOAP。 那么我们也会移动我们的其他网站。

path一:我正在寻找在同一个IP地址(1.1.1.1)上build立两个域。 为了方便起见。 然而,这看起来并不那么容易或安全(见底部的参考)。 我发现我没有足够新的Apache或openssl版本来做到这一点。

path二:我决定看看我需要做什么来更新它们,这导致发现yum和apt-get不再有FC4的镜像。 我在网上发现了可以手动安装的版本。 我不想走这条路,因为我怀疑我可以扭转变化。 我不喜欢把我的希望寄托在一个如果我想念的情况下也能杀死我的银弹。

我有:

  • 我拥有www.domain2.com的SSL证书。
  • www.domain2.com指向与www.domain1.com(1.1.1.1)相同的IP。
  • 我有三个IP地址分配给我的服务器,我可以使用(1.1.1.2,1.1.1.3和1.1.1.4)。

由于我下的path看起来不太可行,我以为我可以在1.1.1.2上设置www.domain2.com。 随着Apache的新安装,然后也可以链接到Tomcat的访问SOAP。

问题:

  • 我可以使用IP 1.1.1.2及其证书在当前版本的Apache上设置domain2,还是需要安装另一个版本的Apache来并行运行?
  • 如果httpd-ssl.conf文件在同一个Apache中,我将如何configuration?

目前的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 [email protected] 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> 

有没有人有任何build议如何进行? 我正在寻找最小的变化是“可以撤消”,以防万一我搞砸了。 当涉及到这些types的东西时,我的工具箱非常小。 任何帮助将不胜感激! 如果你有办法想想这件事,请告诉我。 :)哦,我的老板会希望我在星期六的4个小时的维护时间内获得ssl证书。 如果不可能,我可以推迟到下一个。

提前致谢!

编辑为了可读性。

参考文献:

同一IP地址和同一端口上有多个SSL域?

SSL站点在Apache和Ubuntu中不使用正确的IP

不能在apache上安装ssl证书

你不应该安装一个新的Apache。 Apache可能从RPM包安装,所以第二个Apache只能手工安装。 在我看来,最好避免这种小题大做。 但是,您有其他select。

选项1 :您可以configuration您的Apache来处理这两个站点。 要做到这一点,你需要:

  • 使用VirtualHost指令的显式IP地址
  • 并为其中的每一个提供一个NameVirtualHost指令

这实际上是一个来自当前configuration的复制粘贴,只需进行一些更改。 应该看起来像这里的configuration。 因为JkMount指令保持不变,所以www.domain1.com和www.domain2.com提供相同的内容。

你应该在编辑之前复制当前的httpd-ssl.conf文件,所以如果在configuration中搞砸了某些东西,你可以复制原始文件,然后重新启动服务器。

选项2 :如果您只需要更改域名,则不必触碰任何事物。 一个新域名的注册与Apache没有任何关系。 一旦注册完成,DNS服务器将把www.domain2.comparsing为1.1.1.1(曾经是www.domain1.com)。 一旦完成,并且domain1.com被删除,您只需要replaceServerName指令和证书。

如果你必须有两个域共存,不pipe多久,那么转到1。

scheme3 :如果你只是添加一个

 ServerAlias www.domain2.com 

在VirtualHost定义中,Apache将仍然服务于两个域(在相同的IP地址上)。 但是,在这种情况下,您不能为这两个域拥有不同的证书。

这里是选项1的修改configuration:

 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 [email protected] 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 [email protected] 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>