HTTPS无法在Google Compute Engine上运行

inm*_*yth 1 java ssl https tomcat google-compute-engine

我想知道是否有人在Google Compute Engine(而不是GAE)实例上使用SSL和HTTPS.我无法在我的网站上使用HTTPS:浏览器和在线测试工具无法连接到我的服务器.

我的环境是ubuntu-1404-trusty-v20141212和Tomcat 8.

这是我做的:

  • 我在实例的网络设置上勾选了"允许HTTP"和"允许HTTPS流量"
  • 安装了我的4美元Comodo证书.
  • 使用原样连接器配置server.xml,仅添加密钥库和密码

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="/etc/ssl/private/tomcat.keystore" keystorePass="password" />

当我启动Tomcat并转到时,我收到上述错误https://mysite.com:8443.一些诊断是:

  • 日志catalina.out没有说严重的事情.
  • 运用 netstat -ntlp |grep :8443

    tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN 8500/java 显示我的tomcat正在收听8443

最后,我创建了一个具有相同环境的AWS EC2实例,并安装了我的SSL证书.它立即工作,没有任何修补端口和防火墙.任何关于如何使SSL在GCE上工作的建议都值得赞赏.

inm*_*yth 6

自己搞清楚了.怀疑,这确实与防火墙有关.在GCE实例中允许HTTPS流量时,默认端口为443而不是8443.更改侦听端口或更改防火墙规则:

Google Developers Console->计算引擎 - >网络 - >与实例关联的网络名称 - >防火墙规则.

列出了几条规则,在我的情况下我需要修改 default-allow-https