]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Improve debugs warnings when loading signing certs fails
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 8 Nov 2016 06:34:59 +0000 (19:34 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 8 Nov 2016 06:34:59 +0000 (19:34 +1300)
src/ssl/support.cc

index 9c4e0fd3ef021cf4b2246e83ad055dc598f1c31d..6c4495cde6adc48fd6afb27aa329727b5e1186da 100644 (file)
@@ -1372,10 +1372,17 @@ void Ssl::readCertChainAndPrivateKeyFromFiles(Security::CertPointer & cert, EVP_
     pem_password_cb *cb = ::Config.Program.ssl_password ? &ssl_ask_password_cb : NULL;
     pkey.resetWithoutLocking(readSslPrivateKey(keyFilename, cb));
     cert.resetWithoutLocking(readSslX509CertificatesChain(certFilename, chain.get()));
-    if (!pkey || !cert || !X509_check_private_key(cert.get(), pkey.get())) {
-        pkey.reset();
-        cert.reset();
-    }
+    if (!cert) {
+        debugs(83, DBG_IMPORTANT, "WARNING: missing cert in '" << certFilename << "'");
+    } else if (!pkey) {
+        debugs(83, DBG_IMPORTANT, "WARNING: missing private key in '" << keyFilename << "'");
+    } else if (!X509_check_private_key(cert.get(), pkey.get())) {
+        debugs(83, DBG_IMPORTANT, "WARNING: X509_check_private_key() failed to verify signing cert");
+    } else
+        return; // everything is okay
+
+    pkey.reset();
+    cert.reset();
 }
 
 bool Ssl::generateUntrustedCert(Security::CertPointer &untrustedCert, EVP_PKEY_Pointer &untrustedPkey, Security::CertPointer const  &cert, EVP_PKEY_Pointer const & pkey)