Tiga mesin di lingkungan produksi memiliki beberapa masalah perangkat keras dan dinonaktifkan. Tim infrastruktur telah menginstal ulang mereka dan memberi mereka nama host dan alamat IP yang sama. Tujuannya adalah untuk menjalankan Wayang pada sistem ini sehingga ini dapat ditugaskan lagi.
Mencoba
1) Sertifikat Wayang lama dihapus dari Dalang dengan mengeluarkan perintah berikut:
puppet cert revoke grb16.company.com
puppet cert clean grb16.company.com
2) Setelah sertifikat lama dihapus, permintaan sertifikat baru dibuat dengan mengeluarkan perintah berikut dari salah satu node yang diinstal ulang:
[root@grb16 ~]# puppet agent -t
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for grb16.company.com
Info: Certificate Request fingerprint (SHA256): 6F:2D:1D:71:67:18:99:86:2C:22:A1:14:80:55:34:35:FD:20:88:1F:36:ED:A7:7B:2A:12:09:4D:F8:EC:BF:6D
Exiting; no certificate found and waitforcert is disabled
[root@grb16 ~]#
3) Setelah permintaan sertifikat terlihat di Puppetmaster, perintah berikut dikeluarkan untuk menandatangani permintaan sertifikat:
[root@foreman ~]# puppet cert sign grb16.company.com
Notice: Signed certificate request for grb16.company.com
Notice: Removing file Puppet::SSL::CertificateRequest grb16.company.com at '/var/lib/puppet/ssl/ca/requests/grb16.company.com.pem'
[root@foreman ~]#
Masalah
Setelah permintaan sertifikat telah ditandatangani dan menjalankan Wayang telah dimulai kesalahan berikut dilemparkan:
[root@grb16 ~]# puppet agent -t
Info: Caching certificate for grb16.company.com
Error: Could not request certificate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Exiting; failed to retrieve certificate and waitforcert is disabled
[root@grb16 ~]#
Running Puppet untuk kedua kalinya menghasilkan:
[root@grb16 ~]# puppet agent -t
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: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet://foreman.company.com/pluginfacts: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Wrapped exception:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve file metadata for puppet://foreman.company.com/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Wrapped exception:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [CRL is not yet valid for /CN=Puppet CA: foreman.company.com]
[root@grb16 ~]#
Analisis
Untuk mengatasi masalah ini, pesan kesalahan diselidiki dan sepertinya masalahnya adalah SSL atau Wayang terkait. Mungkin salah satu dari paket ini telah diinstal secara tidak benar atau versi yang salah telah diinstal pada node yang diinstal ulang.
Wayang
[root@grb16 ~]# yum list installed |grep puppet
facter.x86_64 1:2.3.0-1.el6 @puppetlabs_6_products
hiera.noarch 1.3.4-1.el6 @puppetlabs_6_products
puppet.noarch 3.7.3-1.el6 @puppetlabs_6_products
puppetlabs-release.noarch
6-11 @puppetlabs_6_products
ruby-augeas.x86_64 0.4.1-3.el6 @puppetlabs_6_deps
ruby-shadow.x86_64 1:2.2.0-2.el6 @puppetlabs_6_deps
rubygem-json.x86_64 1.5.5-3.el6 @puppetlabs_6_deps
SSL
[root@grb16 ~]# yum list installed |grep ssl
nss_compat_ossl.x86_64 0.9.6-1.el6 @anaconda-CentOS-201410241409.x86_64/6.6
openssl.x86_64 1.0.1e-30.el6_6.4
openssl-devel.x86_64 1.0.1e-30.el6_6.4
[root@grb16 ~]#
Tidak ada perbedaan yang ditemukan antara paket SSL dan Boneka yang diinstal pada berbagai server. Sistem yang belum dinonaktifkan atau diinstal ulang masih dapat menjalankan Wayang. Masalahnya terbatas pada server yang diinstal ulang. Perhatikan bahwa Wayang belum dijalankan pada dua server yang diinstal ulang lainnya. Apa yang menyebabkan masalah ini dan bagaimana cara mengatasinya?
sumber
puppet agent -t
saya jalankan pada klien itu menciptakan sertifikat dan mengirimkannya ke puppetmaster untuk persetujuan, jadi jika itu cara yang tepat untuk mengeluarkan sertifikat baru maka saya lakukan.Jawaban:
Jawaban singkat
Masalahnya
CRL is not yet valid for
menunjukkan bahwa waktu antara agen Wayang dan Kepala Boneka tidak sinkron . Sinkronkan waktu (NTP). Hapus sertifikat dari Agen Wayang dan juga Wayang dan jalankan Wayang pada agen.Jawaban komprehensif
CRL is not yet valid for
berada di cuplikan berikut.The berikut kode uji potongan menjelaskan apa yang menyebabkan masalah ini:
ssl_context
subyek
Kode ini termasuk cuplikan dari kelas OpenSSL :: X509 :: CRL .
penerbit = (p1)
last_update = (p1)
Waktu last_updated akan menjadi waktu saat ini ditambah hari tambahan dan akan diteruskan ke fungsi subjek yang memanggil fungsi panggilan yang berada di kelas default_validator .
Jika preverify_ok salah, klausa lain berlaku. Akibatnya
if crl.last_update && crl.last_update < Time.now + FIVE_MINUTES_AS_SECONDS
salah karena waktu telah dimatikan dengan hari tambahan pernyataan lain akan berlaku. Evaluasi@verify_errors << "#{error_string} for #{crl.issuer}"
hasil dalamCRL is not yet valid for /CN=Puppet CA: puppetmaster.example.com
.Untuk mengatasi masalah ini:
sudo puppet cert clean <fqdn-puppet-agent>
Kesimpulannya, waktu pada Agen Wayang dan Wayang harus disinkronkan setiap saat. Melebihi deviasi maksimum yang diizinkan 5 menit akan menyebabkan masalah.
sumber
systemctl restart ntpd
Berlari ke masalah yang sama.
Pengaturan boneka kami adalah versi yang dikontrol menggunakan GitHub, jadi setiap kali kami menyediakan seorang juru boneka baru, kami mengalami masalah sertifikat. Biasanya
puppet ca --clean --all
berfungsi, tetapi kami telah menemukan yang berikut ini lebih andal:sumber