Troubleshooting SSL issues
Among the most frustrating issues, especially for new users, are problems with the agent's SSL handshake. Such errors are especially troublesome because Puppet cannot always offer very helpful analysis in its logs—the problems occur in the SSL library functions, and the application cannot examine the circumstances.
Note
The online documentation at Puppet Labs has a Troubleshooting section that has some advice concerning SSL-related issues as well at https://docs.puppetlabs.com/guides/troubleshooting.html.
Consider the following output for the --test
command:
root@agent# puppet agent --testWarning: Unable to fetch my node definition, but the agent run will continue: Warning: SSL_connect returned=1 errno=0 state=unknown state: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: puppet.example.net]
The agent opines that the CRL it receives from the master is not yet valid. Errors such as these can happen whenever the agent's clock gets reset to a very early date. This can also result from but a slight clock skew, when the CRL has recently been updated through a revocation action on the master. If the system clock on the agent machine returns a time far in the future, it will consider certificates to be expired.
These clock-related issues are best avoided by running an ntp
service on all Puppet agents and masters.
Errors will generally result if the data in the agent's $ssldir
becomes inconsistent. This can happen when the agent interacts with an alternate master (a testing instance, for example). The first piece of advice you will most likely receive when asking the community what to do about such problems is to create a new agent certificate from scratch. This works as described in the The agent's life cycle section:
- Remove all the SSL data from the agent machine.
- Revoke and remove the certificate from the master using
puppet cert clean
. - Request and sign a new certificate.
This approach will indeed remedy most issues. Be careful not to leave any old files in the relevant location on the agent machine. If the problems persist, a more involved solution is required. The openssl command-line tool is helpful to analyze the certificates and related files. The details of such an analysis are beyond the scope of this book, though.
- 軟件安全技術
- 數據庫系統教程(第2版)
- Python自然語言處理(微課版)
- 征服RIA
- Hands-On Full Stack Development with Go
- Apache Spark 2.x for Java Developers
- Mastering ROS for Robotics Programming
- Unity UI Cookbook
- 響應式架構:消息模式Actor實現與Scala、Akka應用集成
- OpenCV with Python By Example
- HoloLens與混合現實開發
- 零基礎學Python編程(少兒趣味版)
- 并行編程方法與優化實踐
- Android Studio開發實戰:從零基礎到App上線 (移動開發叢書)
- C語言程序設計