作者:姚若薇_453 | 来源:互联网 | 2024-12-26 17:40
本文介绍如何在QT框架中使用QWebSocket和QTcpSocket实现SSL加密通信,涵盖单向认证设置。单向认证常见于Web通信场景,其中客户端验证服务端证书,而服务端不验证客户端证书。
一、QWebSocket SSL自签名证书加密通信案例
1.1 单向认证
单向认证广泛应用于Web通信中,即客户端需要验证服务端证书,但服务端无需验证客户端证书。这种模式下,服务端需配置根(CA)证书和服务端证书,并提供私钥文件。证书格式可以是crt、cert等。
使用OpenSSL工具(下载地址:OpenSSL官网)可生成CA证书、服务端证书及私钥。以下是具体步骤:
step1: cd E:\keystore
step2: openssl genrsa -out ca.key 2048 # 生成CA私钥
step3: openssl req -new -x509 -days 36500 -key ca.key -out ca.cert # 生成CA根证书
step4: mkdir demoCA # 创建CA相关文件目录
cd demoCA/
mkdir newcerts
touch index.txt # Windows下使用命令:type nul > index.txt
echo 01 > serial # 注意这里没有引号,int型
step5: cd ../ # 生成服务端证书
step6: openssl genrsa -out server.key 2048 # 生成服务端私钥
step7: openssl req -new -key server.key -out server.csr # 生成服务端证书请求
step8: openssl x509 -req -days 365 -in server.csr -CA ca.cert -CAkey ca.key -CAcreateserial -out server.cert # 签发服务端证书
确保服务端和客户端选择相同的协议(TLS或SSL),并正确配置证书路径和密钥文件。