3

我正在尝试在 Ubuntu 16 上使用 Websockify 通过本地家庭沙箱上的 https 访问 noVNC --> https://ubuntu:6080/vnc.html?host=ubuntu&port=6080

到目前为止采取的步骤:

1.在我的本地主机上自行签署了一个测试证书,即使它通过证书的 https b/c 有一条红线,我也可以访问它。

2.下载最新的noVNC和websockify。

3.将 websockify 放在 noVNC 的 utils 目录中。

如果我通过 launch.sh 运行 noVNC:

utils/launch.sh --vnc localhost:5901 --cert ./lib/

在 lib 具有自签名的 .key、.pem 和 .csr 的地方,我的 bash 读取:

Starting webserver and WebSockets proxy on port 6080
WARNING: no 'numpy' module, HyBi protocol will be slower
WebSocket server settings:
  - Listen on :6080
  - Flash security policy server
  - Web server. Web root: /home/testuser/app/novnc
  - SSL/TLS support
  - proxying from :6080 to localhost:5901


Navigate to this URL:

    http://ubuntu:6080/vnc.html?host=ubuntu&port=6080

Press Ctrl-C to exit

当我转到浏览器并加载上面显示的 url 时,我得到了 vnc.html 页面。但是,当我使用 https 而不是 http(我的原始要求)时,我收到以下错误:

*handler exception: [Errno 336265225] _ssl.c:355: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib*

经过进一步审查,我发现了一个SO 帖子,该帖子将同样的错误指向了一个可以通过 verify=False 解决的 python 问题。然而,在我进入兔子洞之前,我对我一无所知,我想我会问是否有人知道为什么我不能通过 https 访问 noVNC?

4

1 回答 1

3

您的命令包含参数--cert ./lib/,其中 /lib/ 是一个目录。

根据man websockify您应该使用以下选项:

    --cert=CERT        SSL certificate file                
    --key=KEY          SSL key file (if separate from cert)
于 2017-08-11T09:54:39.533 回答