Saya mencoba mengatur forwarder logstash, tetapi saya memiliki masalah dengan membuat saluran aman yang tepat. Mencoba mengkonfigurasi ini dengan dua mesin ubuntu (server 14.04) yang berjalan di virtualbox. Mereka 100% bersih (tidak menyentuh file host atau menginstal paket lain selain java, ngix, elastisearch, dll yang diperlukan, untuk logstash)
Saya tidak percaya ini adalah masalah logstash, tetapi penanganan sertifikat yang tidak tepat atau sesuatu yang tidak disetel dengan benar pada logstash ubuntu atau mesin penerus.
Saya menghasilkan kunci:
sudo openssl req -x509 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
Input input saya di server logstash:
input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
Kunci disalin ke host forwarder , yang memiliki konfigurasi berikut.
{
"network": {
"servers": [ "192.168.2.107:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
"ssl key": "/etc/pki/tls/certs/logstash-forwarder.key"
},
"files": [
{
"paths": [
"/var/log/syslog",
"/var/log/auth.log"
],
"fields": { "type": "syslog" }
}
]
}
Dengan server logstash berjalan, saya 'sudo service logstash-forwarder start' pada mesin forwarder, memberi saya kesalahan berulang berikut:
Jul 9 05:06:21 ubuntu logstash-forwarder[1374]: 2014/07/09 05:06:21.589762 Connecting to [192.168.2.107]:5000 (192.168.2.107)
Jul 9 05:06:21 ubuntu logstash-forwarder[1374]: 2014/07/09 05:06:21.595105 Failed to tls handshake with 192.168.2.107 x509: cannot validate certificate for 192.168.2.107 because it doesn't contain any IP SANs
Jul 9 05:06:22 ubuntu logstash-forwarder[1374]: 2014/07/09 05:06:22.595971 Connecting to [192.168.2.107]:5000 (192.168.2.107)
Jul 9 05:06:22 ubuntu logstash-forwarder[1374]: 2014/07/09 05:06:22.602024 Failed to tls handshake with 192.168.2.107 x509: cannot validate certificate for 192.168.2.107 because it doesn't contain any IP SANs
Seperti yang saya sebutkan sebelumnya, saya tidak percaya ini adalah masalah logstash, tetapi masalah konfigurasi sertifikat / mesin. Masalahnya, saya sepertinya tidak bisa menyelesaikannya. Semoga beberapa orang pintar di sini dapat membantu saya?
Terima kasih
openssl x509 -text
dari sertifikat yang dipasang di server. Harap periksa jugaopenssl s_client
bahwa server mengembalikan sertifikat yang diharapkan dan gunakan-CApath
dengan s_client untuk memeriksa bahwa rantai kepercayaan dapat diverifikasi terhadap CA yang dikonfigurasi.Ada skrip untuk membuat sertifikat yang tepat untuk penebang yang disebutkan pada tiket logstash github: Jabat tangan SSL gagal karena IP SAN hilang
Unduh file:
curl -O https://raw.githubusercontent.com/driskell/log-courier/1.x/src/lc-tlscert/lc-tlscert.go
...bangun itu:
..dan lari:
sumber
Saya punya masalah nyata dengan ini. Saya tidak menggunakan logstash, saya hanya mencoba untuk mendapatkan IP SAN untuk bekerja dengan buruh pelabuhan. Saya akan membuat sertifikat seperti yang dijelaskan dalam artikel buruh pelabuhan di https ( https://docs.docker.com/articles/https/ ), lalu ketika saya akan terhubung dari klien buruh pelabuhan:
Saya akan mendapatkan kesalahan ini:
yang membuatku gila. Saya akui, saya tersandung di semua hal openssl, jadi, semua orang mungkin sudah tahu apa yang saya temukan. Contoh subjectAltName di sini (dan setiap tempat lainnya) menunjukkan pembaruan file openssl.cnf. Saya tidak bisa membuatnya bekerja. Saya melakukan pencarian di openssl.cnf, salin ke direktori lokal, lalu buat perubahan. Ketika saya memeriksa sertifikat itu tidak mengandung ekstensi:
Perintah yang digunakan untuk membuat sertifikat itu ada di sini (dari artikel buruh pelabuhan):
Anda tidak dapat menambahkan baris -config openssl.cnf ke perintah ini, ini tidak valid. Anda juga tidak dapat menyalin file openssl.cnf ke direktori saat ini, memodifikasinya, dan berharap membuatnya berfungsi seperti itu. Beberapa baris kemudian saya perhatikan bahwa sertifikat 'client' menggunakan extfile.cnf -extfile. Jadi, saya mencoba ini:
dan itu memperbaikinya. Jadi, untuk alasan apa pun versi openssl saya tidak memungkinkan saya untuk memodifikasi file openssl.cnf, tetapi, saya dapat menentukan subjectAltName seperti ini. Bagus sekali!
Anda dapat menentukan sejumlah alamat IP, seperti IP: 127.0.0.1, IP: 127.0.1.1 (juga bukan localhost).
sumber
Silakan lihat solusi @Steffen Ullrich di atas untuk perbaikan cepat.
Ada juga masalah / diskusi tentang hal itu di github proyek logstash-forwarder . Lihat (segera, saat sedang dikerjakan sedang berlangsung) untuk solusi yang lebih mudah.
sumber