网上也有一部分教程,不过我还是踩了许多的坑,所以整理了一下网上看到的和自己的一些收获。
 
 
 
首先:
 
 
,Tomcat.truststore (包含信任库),
 
 
首先说明一下这个两个文件
client.p12 pkcs12格式
Tomcat.truststore java存储的keystore格式,也可能是 .keystore文件
QT是无法直接使用这两个文件的,QT使用的是openssl,需要转化成pem文件使用
首先需要安装JDK,安装后将JKS文件转化为p12文件
运行以下命令:
JKS → P12
keytool -importkeystore -srckeystore Tomcat.truststore -srcstoretype JKS -deststoretype Der -destkeystore Tomcat.p12
这样将会在当前目录生成Tomcat.p12 信任库
接下来首先安装openssl,然后:
提取用户证书:
 openssl pkcs12 -in client.p12 -clcerts -nokeys -out client.pem    //pem格式
提取私钥:
 openssl pkcs12 -in client.p12  -nocerts -out key.pem 
转换信任库为pem格式
 
  openssl pkcs12 -in 
  Tomcat.p12 -out  
  Tomcat.pem 
 
 
  
OK,准备工作完成,开始加载证书进行SSL连接了。
 
 
 
直接贴上我的配置代码:
 
 
  
QFile 
  
 
   
   
  
//上边两句是万万不能少的,如果setPeerVerifyMode不设置,就会出现SSL握手失败
> list = QSslCertificate::fromDevice(&file, QSsl::Pem);
 
   
   
   
  










