To clarify, I this is with puppetserver 2.7.2 from the puppetlabs yum repo. Using the version of openssl in /opt/puppetlabs/puppet/bin/ provides the same output as the system openssl
On Tuesday, March 21, 2017 at 4:52:38 PM UTC-4, Steve Viola wrote: > > Hello, > > I've configured my puppetserver with an External CA > <https://docs.puppet.com/puppetserver/latest/external_ca_configuration.html>, > and everything was working as expected off the bat, but when I add the CRL > path, puppet agent runs on all hosts stops running. webserver.conf looks > like this: > > webserver: { >> access-log-config: /etc/puppetlabs/puppetserver/request-logging.xml >> client-auth: want >> ssl-host: 0.0.0.0 >> ssl-port: 8140 >> ssl-cert: /etc/puppetlabs/puppet/ssl/certs/<hostname> >> ssl-key: /etc/puppetlabs/puppet/ssl/private_keys/<hostname> >> ssl-ca-cert: /etc/puppetlabs/puppet/ssl/ca/ca.crt >> ssl-cert-chain: /etc/puppetlabs/puppet/ssl/ca/ca_chain.pem >> ssl-crl-path: /etc/puppetlabs/puppet/ssl/ca/ca_crl.pem >> } > > > At first there were not any errors appearing in the puppetserver logs, > but after changing the logback log level to DEBUG, I finally saw found > errors in the puppetserver.log file: > > 2017-03-21 16:28:11,652 DEBUG [qtp1057116152-68] [o.e.j.s.HttpConnection] >> javax.net.ssl.SSLHandshakeException: General SSLEngine problem >> at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1478) >> at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535) >> at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:813) >> at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781) >> at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624) >> at >> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:516) >> at >> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:239) >> at >> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) >> at java.lang.Thread.run(Thread.java:745) >> Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem >> at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) >> at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728) >> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:304) >> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) >> at >> sun.security.ssl.ServerHandshaker.clientCertificate(ServerHandshaker.java:1906) >> at >> sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:233) >> at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026) >> at sun.security.ssl.Handshaker$1.run(Handshaker.java:966) >> at sun.security.ssl.Handshaker$1.run(Handshaker.java:963) >> at java.security.AccessController.doPrivileged(Native Method) >> at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1416) >> at >> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:612) >> ... 5 common frames omitted >> Caused by: sun.security.validator.ValidatorException: PKIX path >> validation failed: java.security.cert.CertPathValidatorException: Could not >> determine revocation status >> at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:352) >> at >> sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:249) >> at sun.security.validator.Validator.validate(Validator.java:260) >> at >> sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) >> at >> sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:279) >> at >> sun.security.ssl.X509TrustManagerImpl.checkClientTrusted(X509TrustManagerImpl.java:130) >> at >> sun.security.ssl.ServerHandshaker.clientCertificate(ServerHandshaker.java:1893) >> ... 12 common frames omitted >> Caused by: java.security.cert.CertPathValidatorException: Could not >> determine revocation status >> at >> sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135) >> at >> sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:219) >> at >> sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140) >> at >> sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79) >> at >> java.security.cert.CertPathValidator.validate(CertPathValidator.java:292) >> at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:347) >> ... 18 common frames omitted >> Caused by: java.security.cert.CertPathValidatorException: Could not >> determine revocation status >> at >> sun.security.provider.certpath.RevocationChecker.buildToNewKey(RevocationChecker.java:1092) >> at >> sun.security.provider.certpath.RevocationChecker.verifyWithSeparateSigningKey(RevocationChecker.java:910) >> at >> sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:577) >> at >> sun.security.provider.certpath.RevocationChecker.checkCRLs(RevocationChecker.java:465) >> at >> sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:367) >> at >> sun.security.provider.certpath.RevocationChecker.check(RevocationChecker.java:337) >> at >> sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125) >> ... 23 common frames omitted > > > Testing the CRL using openssl works as expected, after concatenating the > CA crt and the CRL crt, and running the openssl command below verifies the > cert hasn't been revoked. > > $ openssl verify -crl_check -CAfile crl_ca.pem >> /etc/puppetlabs/puppet/ssl/certs/<hostname>.pem >> /etc/puppetlabs/puppet/ssl/certs/<hostname>.pem: OK > > > OpenSSL also verifies that certs have been revoked as well: > > $ openssl verify -crl_check -CAfile crl_chain3.pem <revoked cert>.pem >> <revoked cert>.pem: O = <domain>, CN = <hostname> >> error 23 at 0 depth lookup:certificate revoked > > > Are there any additional setting needed to get Java working to honor the > CRL? Is there any resource for better logging to be able to narrow down the > issue? Is using a CRL with an external CA still supported in puppetserver, > or should I avoid using a CRL and use OCSP instead? > > Any help or advice would be hugely appreciated. > > Thanks a lot. > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/6a9a1841-da0e-4abc-81e9-fcb22496d945%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.