[Qt-interest] Qt Https double Two-way authentication?
Jason H
scorp1us at yahoo.com
Thu Oct 27 17:14:26 CEST 2011
Is your private key protected by a passphrase?
I've gotten TLS working wiht Qt, so I know it is doable.
----- Original Message -----
From: Kermit <kermit.mei at gmail.com>
To: Qt-interest <qt-interest at qt.nokia.com>
Cc:
Sent: Wednesday, October 26, 2011 5:07 AM
Subject: [Qt-interest] Qt Https double Two-way authentication?
Hello community,
I want to use QNetwordAccessManager and QNetworkRequest to access a https web server(I used Nginx here). The code is like this:
//Init QSslConfiguration object: m_sslConfiguration
QList<QSslCertificate> caList = m_sslConfiguration.caCertificates();
caList.append(QSslCertificate("./cacert.pem")); //Root CA
m_sslConfiguration.setCaCertificates(caList);
QFile cpKey("./client.key"); //Client Private Key
if(cpKey.open(QIODevice::ReadOnly)) {
m_sslConfiguration.setLocalCertificate(QSslCertificate(".client.crt"));
m_sslConfiguration.setPrivateKey(QSslKey(&cpKey, QSsl::Rsa));
m_sslConfiguration.setProtocol(QSsl::SslV3);
m_sslConfiguration.setPeerVerifyMode(QSslSocket::VerifyPeer);
}
//Request by QNetworkRequest:
if(m_webPageInfo) {
QNetworkRequest request(m_webPageInfo->url());
request.setSslConfiguration(m_sslConfiguration);
get(request); //This will call QNetWorkAccessManager::get(...)
}
But I can't get the data, and nginx's log told me:
$ cat /var/log/nginx/localhost.ssl_error_log
2011/10/26 16:39:22 [info] 22953#0: *1 client sent no required SSL certificate while reading client request headers, client: 10.0.2.15, server: , request: "GET /start.html HTTP/1.1", host: "10.0.2.15"
2011/10/26 16:41:49 [info] 22953#0: *2 client sent no required SSL certificate while reading client request headers, client: 10.0.2.15, server: , request: "GET /start.html HTTP/1.1", host: "10.0.2.15"
2011/10/26 16:43:49 [info] 22953#0: *3 client sent no required SSL certificate while reading client request headers, client: 10.0.2.15, server: , request: "GET /start.html HTTP/1.1", host: "10.0.2.15"
2011/10/26 16:45:17 [info] 22953#0: *4 client sent no required SSL certificate while reading client request headers, client: 10.0.2.15, server: , request: "GET /start.html HTTP/1.1", host: "10.0.2.15"
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^
I don't know where I make the mistake so the the client can't
sent the required SSL certificate?
By the way, if I don't ask the client's CA on web server, it works.
And the nginx.conf is now like this:
# SSL example
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/nginx/nginx.crt;
ssl_certificate_key /etc/ssl/nginx/nginx.key;
ssl_verify_client on;
ssl_client_certificate /etc/ssl/nginx/cacert.pem;
ssl_session_timeout 5m;
access_log /var/log/nginx/localhost.ssl_access_log main;
error_log /var/log/nginx/localhost.ssl_error_log info;
root /var/www/localhost;
}
Thanks
B.R
Kermit
_______________________________________________
Qt-interest mailing list
Qt-interest at qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-interest
More information about the Qt-interest-old
mailing list