1

Qt ドキュメントのサンプル コードを使用して SSL サーバーを作成しました。次に、を使用して接続しQSslSocket::connectToHostEncryptedます。

ただし、サーバーに障害が発生し、これはQSslSocket::errorString()

Cannot provide a certificate with no key, 
error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read

次のコードで証明書と秘密鍵を設定します。

serverSocket->setLocalCertificate("/home/user/Workspace/openssl/cacert.pem");
serverSocket->setPrivateKey("/home/user/Workspace/openssl/privkey.pem");

Ubuntuで次のコマンドを使用してcacert.pem作成しました:privkey.pem

openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825
4

1 に答える 1

1

エラーは、秘密鍵 (openssl が証明書の作成中に要求したもの) のパスワードを指定しなかったことが原因でした。だから代わりに

serverSocket->setPrivateKey("/home/user/Workspace/openssl/privkey.pem");

私は今電話します

serverSocket->setPrivateKey("/home/user/Workspace/openssl/privkey.pem", QSsl::Rsa, QSsl::Pem, "mypassword");

これで問題は解決しました。

于 2013-01-06T18:37:30.583 に答える