我正在编写一个自定义客户端和服务器,我想通过公共 Internet 安全地进行通信,因此我想使用 OpenSSL 并让两端都进行对等验证以确保我的客户端不会被 MITM 误导,同样未经授权的客户端无法连接到服务器。
这是在 SSL_connect / SSL_accept 阶段从服务器收到的错误:
15620:error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca:ssl\record\rec_layer_s3.c:1528:SSL alert number 48
Run Code Online (Sandbox Code Playgroud)
我在 Windows 10 下运行,使用 OpenSSL 1.1.1。我正在使用以下批处理文件来创建它们。出于显而易见的原因,我手动输入了 ca 私钥密码。
openssl genrsa -out -des3 ca.key.pem 2048
openssl genrsa -out server.key.pem 2048
openssl genrsa -out client.key.pem 2048
openssl req -x509 -new -nodes -key ca.key.pem -sha256 -days 365 -out ca.cert.pem -subj /C=US/ST=CA/L=Somewhere/O=Someone/CN=Foobar
openssl req -new -sha256 -key server.key.pem -subj /C=US/ST=CA/L=Somewhere/O=Someone/CN=Foobar -out server.csr
openssl x509 -req -in server.csr -CA ca.cert.pem -CAkey ca.key.pem -CAcreateserial -out server.cert.pem …Run Code Online (Sandbox Code Playgroud)