我需要从HTTP切换到HTTPS才能使用getUsermedia进行webrtc实现.我已经在我的Apache 2.2.22版本上安装了证书并使其正常运行.
在我主持NodeJS的网站上使用.也许不是理想的设置,但是当客户端上的socket.io想要与NodeJS服务器通信时,我遇到了问题.
在控制台中显示以下消息:
GET https://mydomain.nl:1900/socket.io/?EIO=3&transport=polling&t=1449219985177-166 net::ERR_CONNECTION_CLOSED
对我来说很明显,NodeJS服务器应用程序无法通过HTTPS处理请求,因为它是一个HTTP服务器.
我想改变该服务器,以便能够使用apache webserver上已有的SSL来提供HTTPS请求.
这有可能吗?
我建议看看apache的mod_proxy.这将允许您通过apache SSL管道运行外部请求.node.js只能在没有ssl支持的localhost接口上运行,因为它是由apache代理的.我配置一个vhost它可能看起来像这样:
ServerName www.yourserver.com DocumentRoot /var/www/vhosts/www.yourserver.com/public_html CustomLog combined ErrorLog # Example SSL configuration SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 SSLCertificateFile " /server.crt" SSLCertificateKeyFile " /server.key" ProxyPass / / http://localhost:1900/ ProxyPassReverse / / http://myserver:1900/
您的要求将如下所示:
GET https://mydomain.nl//?....
其中
的值与vhost config的
指令中的值相同.