我是否需要应用程序服务器上的 SSL 证书?

我是否需要应用程序服务器上的 SSL 证书?

我有一个 3 层部署(Web 服务器、应用程序、数据库)。我在 Web 服务器(Apache)上应用了 SSL 证书。应用服务器上还有另一个基于 PHP 的应用程序。此应用程序的请求通过文件中的 ProxyPass 指令从 Web 服务器路由virtualhost.conf

当我从应用程序服务器请求应用程序时,出现“混合内容”错误(通过 https 连接提供 http 内容)。

我的问题:
1. 我是否需要应用程序服务器上的 SSL 证书?
2. 如何消除此错误?

答案1

  1. 是的,一旦您想要建立安全连接,您就需要在应用服务器上拥有 SSL 证书。
  2. 在应用服务器上安装证书并为此服务器添加虚拟主机设置,如下所示:

    <VirtualHost *:443>

      ServerName app.yourdomain.tld
    
      SSLProxyEngine On
      ProxyPass / https://app.yourdomain.tld/
      ProxyPassReverse / https://app.yourdomain.tld/
    

    </VirtualHost>

问题是,您的安全网站可能有自己的域名,而您尝试将其中的代码嵌入到您的 https 网站中。在这种情况下,浏览器会警告用户部分连接未加密。

您可以先使用免费证书(例如 StartSSL)尝试一下。

答案2

如果您在代码中混合使用 http 和 https,则可能会发生这种情况,我认为阅读以下文章会对您有所帮助: 如何成为极客文章

相关内容