运行sudo certbot --nginx -d mydomain.io -d www.mydomain.io
后
我得到:
Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/mydomain.io/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/mydomain.io/privkey.pem
为了让我的应用程序正常工作,我需要private.key
和certificate.crt
文件。
我尝试过转换.pem
文件,如下所示:
openssl x509 -outform der -in /etc/letsencrypt/live/mydomain.io/fullchain.pem -out certificate.crt
openssl rsa -outform der -in /etc/letsencrypt/live/mydomain.io/privkey.pem -out private.key
当试图运行我的应用程序时,我在浏览器开发工具中遇到了这个错误:
WebSocket connection to 'wss://<my-ip>:<my-port>/' failed:
Error in connection establishment: net::ERR_CERT_COMMON_NAME_INVALID
在服务器上,我收到了这个错误(显然这意味着我的应用程序无法解析密钥文件(:
mbedtls error: returned -0x7780
所以这看起来像是证书的问题。你能帮我弄清楚我做错了什么吗?是什么原因导致了这个问题?有没有其他方法可以生成.crt
和.key
文件,这样我就可以再次检查我是否犯了错误?
发现我的问题与生成密钥无关,我做得很正确。
但我的应用程序的客户端版本试图连接到wss://<my-ip>:<my-port>/
,而我应该连接到wss://<my-domain-name>:<my-port>/
。