2017-06-06 101 views
2

我使用的是collider(https://github.com/webrtc/apprtc/tree/master/src/collider -a中的websockets服务器),我正在尝试添加SSL/TLS支持。对于我生成的自签名证书:带有Websockets服务器的SSL/TLS - 去掉lang

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 

Enter PEM pass phrase: 
Verifying - Enter PEM pass phrase: 
Country Name (2 letter code) [AU]:US 
State or Province Name (full name) [Some-State]:CA 
Locality Name (eg, city) []: 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:testwebsite.com 
Organizational Unit Name (eg, section) []:Engineering 
Common Name (e.g. server FQDN or YOUR name) []:www.testwebsite.com 
Email Address []:[email protected] 

当我运行的对撞机,我看到这个错误:

2017/06/05 21:25:50 Error Run: crypto/tls: failed to parse private key 

当我生成使用(基于http://www.kaihag.com/https-and-go/):

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem 

我收到此错误:

2017/06/05 22:11:31 http: TLS handshake error from <some-ip>:1082: remote error: unknown certificate 

如何解决这个问题?

注:对撞机采用golang.org/x/net/websocket

+0

***'CN = www.example.com' ***可能是错误的。主机名始终在* SAN *中。如果它存在于* CN *中,那么它也必须存在于* SAN *中(在这种情况下,您必须列出它两次)。有关更多规则和原因,请参阅[如何使用您的证书颁发机构签署证书签名请求](http://stackoverflow.com/a/21340898/608639)和[如何使用openssl创建自签名证书?]( http://stackoverflow.com/q/10175812/608639)您还需要将自签名证书放入适当的信任库中。 – jww

+0

@jww感谢指针。我按照步骤进行:https://jamielinux.com/docs/openssl-certificate-authority/sign-server-and-client-certificates.html#create-a-certificate 创建一个根证书,然后创建一个中间媒介。我使用intermedia签署了我的网站的证书。我仍然收到未知的证书错误。 – ssk

回答