自定义域连接上的socket.io`net :: ERR_INSECURE_RESPONSE` - 与Openshift网址一起使用

时间:2014-08-22 17:13:13

标签: ssl socket.io openshift

如果我将客户端连接到:

https://prod-myapp.rhcloud.com:8443

我得到了一个有效的socket.io连接。

但是,如果我更改为自定义域名:

https://www.myapp.me:8443

我收到net::ERR_INSECURE_RESPONSE错误。

我的客户端连接代码如下,其中host是上述网址之一:

var socket = io.connect(host, { query: 'currentUser=' + currentUserId,
                                                      secure: true });

如何让我的自定义域工作?


修改

好的,这正式让我发疯。我使用Openshift CSR创建了一个新的SSL Cert,如下面的@developercorey所示。

当我通过自定义域名访问我的网站时https://www.myapp.me - 我在Chrome中获得了绿锁,当我点击它时会显示www.myapp.me - Identity Verified

以下是我点击Chrome中的挂锁并转到certificate information时看到的内容:

enter image description here

但是,如果我去https://www.myapp.me:8443/socket.io/,我会得到:

   This is probably not the site you are looking for!
   You attempted to reach www.myapp.me, but instead you 
   actually reached a server identifying itself as *.rhcloud.com.

所以我的SSL Cert似乎正在工作但是与socket.io连接无效。


第二次编辑

因此,如果我openssl我的自定义域名,我会获得证书,然后是:

    subject=/serialNumber=LnhzJHxcX0bIdlH2ITnDgaewey8ce5g3/C=US/ST=North Carolina/L=Raleigh/O=Red Hat Inc/OU=RHC Cloud Opoerations/CN=*.rhcloud.com
issuer=/C=US/O=GeoTrust, Inc./CN=GeoTrust SSL CA
---
No client certificate CA names sent
---
SSL handshake has read 2468 bytes and written 456 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
    Session-ID: FB3AD94948150496CD7269AED4A426EE2C2F4604653D129BBC93702B89CEA52E
    Session-ID-ctx: 
    Master-Key: 97EA9B89E9B2FA9342F83E5FF10A18008B8D462334822D2C83F203C44D90D13B37C9F91C503B45CB90684B5156796138

    Key-Arg   : None
    Start Time: 1408758948
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

我唯一能看到的是 - No client certificate CA names sent - 这是问题吗?

2 个答案:

答案 0 :(得分:2)

您是否为自己的域安装了自定义SSL证书?如果没有,则app-domain.rhcloud.com ssl证书对您的自定义域无效(就像您在Web浏览器中访问它一样,您会收到警告)

答案 1 :(得分:-2)

您的DNS已损坏:

$ openssl s_client -connect www.myapp.me:8443 -debug
gethostbyname failure
connect:errno=0

事实上,我没有收到任何DNS服务器的响应(权威或非权威):

$ dig www.myapp.me a

; <<>> DiG 9.8.5-P1 <<>> www.myapp.me a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 45813
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.myapp.me.          IN  A

;; Query time: 3177 msec
;; SERVER: 172.16.1.10#53(172.16.1.10)
;; WHEN: Fri Aug 22 21:10:47 EDT 2014
;; MSG SIZE  rcvd: 30

修复DNS,它应该有效。假设您的服务器具有有效证书并且侦听端口8443。