(Recall that s/example/mydomain/g.) The problem them transforms into certificate verification failure.
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [unable to get local issuer certificate for /CN=loire.example.com]Comparing certificates confirms they aren't quite the same. Recall that my master and agent are running on the same host: I want puppet to handle configuration for the master!
[T] jeff@loire:~ $ openssl s_client -connect loire.example.com:8140 -showcerts > /tmp/cert
[T] jeff@loire:~ $ sudo openssl verify -CAfile /var/lib/puppet/ssl/certs/ca.pem /tmp/cert
/tmp/cert: CN = loire.example.com
error 20 at 0 depth lookup:unable to get local issuer certificate
2,[T] jeff@loire:~ $I tried removing all the certificates I could find and restarting the server.
[T] jeff@loire:~ $ sudo find /var/lib/puppet/ssl -name '*.pem' -delete
[T] jeff@loire:~ $ sudo rm -rf /etc/puppet/ssl
[T] jeff@loire:~ $ sudo puppet cert list --all
Notice: Signed certificate request for ca
[T] jeff@loire:~ $ sudo puppet cert list --all
[T] jeff@loire:~ $(I've never been clear on why certificate lists sometimes become empty on a second request.) But now on restarting the server, I see this error:
java.lang.IllegalArgumentException: Expected a KeyPair or PrivateKey, got org.bouncycastle.openssl.PEMEncryptedKeyPair@315e8e4It looks like I forgot some certificate somewhere. O, how I would have liked a long entry that says "I see that /path/to/A and /path/to/B are not the same."
I'm temporarily out of ideas and search queries. If anyone can shed any light, I'd much appreciate it. If not, this all at least serves to document for those who search these things later.