1

我们在公司中使用 URL 运行了 Confluencehttps://confluence:8443 我们更改了域名 - 假设它是https://abc:8443. 所以服务器,相同的 Apache 实例,它具有新名称和“abc”的证书

它在 Apache/TomCat 上运行,我们无法弄清楚如何让这种转换对用户来说看起来是无缝的,所以我们在同一台服务器(比如服务器 A)上创建了端口 80,并在其上安装了 confluence 证书并创建了一个重定向到

现在如果一个用户去http://confluence,它会去DNS服务器找到服务器A的IP去IIS,得到重定向规则然后去https://abc:8443

如果用户去https://abc:8443,那里没有问题。

但是如果一个用户去http://confluence:8443(大多数用户都有这个书签),它会得到证书错误。

任何人都可以建议一种使这项工作在融合中工作的方法,即tomcat / Apache吗?

谢谢你的时间。

谢谢, 希亚姆

4

1 回答 1

1

你有两个选择:

选项 1:服务器名称指示

如果您的客户端浏览器都支持它,您可以将 HTTPD 配置为使用服务器名称指示 (SNI),它允许客户端告诉服务器它正在请求哪个主机。这假设您已经有两个不同的 SSL 证书用于“abc”和“confluence”,并且您在每个 VirtualHost 下配置了适当的 SSL 证书。

值得注意的是,Windows XP 上的 Internet Explorer不支持 SNI,但由于 Windows XP 已经达到生命周期的终点,您的组织希望不再有任何此类客户端。

上面 SNI 页面中的示例供参考,如下所示:

Listen 192.168.1.1:443

LoadModule ssl_module   modules/mod_ssl.so

SSLPassPhraseDialog     builtin
AcceptMutex             flock
SSLSessionCache         shmcb:/var/cache/httpd/mod_ssl/ssl_scache(512000)
SSLSessionCacheTimeout  300
SSLMutex                default
SSLRandomSeed           startup /dev/urandom  256
SSLRandomSeed           connect builtin

NameVirtualHost 192.168.1.1:443

<VirtualHost 192.168.1.1:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

        SSLCertificateFile      /etc/ssl/star.example.com.crt
        SSLCertificateKeyFile   /etc/ssl/star.example.com.key

        ServerName      "one.example.com"
        DocumentRoot    "/var/www/html/one"

        CustomLog       "/var/log/httpd/one-access.log" combined
        ErrorLog        "/var/log/httpd/one-error.log"

        <Directory /var/www/html>
                AllowOverride none

                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

<VirtualHost 192.168.1.1:443>
        SSLEngine on
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

        SSLCertificateFile      /etc/ssl/star.example.com.crt
        SSLCertificateKeyFile   /etc/ssl/star.example.com.key

        ServerName      "two.example.com"
        DocumentRoot    "/var/www/html/two"

        CustomLog       "/var/log/httpd/two-access.log" combined
        ErrorLog        "/var/log/httpd/two-error.log"

        <Directory /var/www/html>
                AllowOverride none

                Order Allow,Deny
                Allow from all
        </Directory>
</VirtualHost>

选项 2:通配符 SSL 证书

如果您的服务器或客户端不支持 SNI,但如果“abc”和“confluence”是同一域中的主机,您还可以获得通配符 SSL 证书。

例如,如果您获得 *.example.com 的通配符证书,您的单个 httpd 服务器将能够处理 abc.example.com 和 confluence.example.com 的 HTTPS 请求而不会出错。

于 2014-05-01T15:35:52.757 回答