Saya mencoba mengatur SSL pada server web apache2 saya, tetapi tampaknya tidak berfungsi sama sekali.
Saya telah mengikuti tutorial untuk membuat file cert dengan openssl dan mengkonfigurasi dengan /etc/apache2/sites-available/default-ssl.conf
benar.
Setiap kali saya mencoba membuka situs web saya dengan https, browser saya menolak untuk terhubung karena masalah keamanan. Dikatakan bahwa saya belum mengkonfigurasi situs web saya dengan benar.
Di saya, /var/log/apache2/error.log
saya mendapatkan peringatan, yang mengatakan bahwa sertifikat server saya tidak menyertakan ID yang cocok dengan nama server.
[Mon Apr 10 11:03:24.041813 2017] [mpm_prefork:notice] [pid 1222] AH00169: caught SIGTERM, shutting down
[Mon Apr 10 11:03:30.566578 2017] [ssl:warn] [pid 661] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.579088 2017] [ssl:warn] [pid 1194] AH01909: 127.0.0.1:443:0 server certificate does NOT include an ID which matches the server name
[Mon Apr 10 11:03:31.592958 2017] [mpm_prefork:notice] [pid 1194] AH00163: Apache/2.4.25 (Raspbian) OpenSSL/1.0.2k configured -- resuming normal operations
[Mon Apr 10 11:03:31.593136 2017] [core:notice] [pid 1194] AH00094: Command line: '/usr/sbin/apache2'
Apakah Anda punya ide untuk menyelesaikannya? Terima kasih dalam hal!
Jawaban:
Oke, saya perhatikan bahwa posting ini dilihat cukup sering baru-baru ini dan sepertinya banyak orang menghadapi masalah yang sama seperti yang saya lakukan. Jika demikian maka ini mungkin membantu Anda.
Saya telah mengikuti tutorial langkah demi langkah sederhana untuk membuat sertifikasi SSL untuk server web saya. Seperti banyak tutorial di luar sana, hasil tutorial yang saya ikuti adalah sertifikat yang ditandatangani sendiri menggunakan OpenSSL. Ya ditandatangani sendiri , itu masalahnya. Peramban tidak dapat mempercayai server karena sertifikatnya yang ditandatangani dengan sendirinya. Yah aku juga tidak akan melakukan ...
Sertifikat harus ditandatangani oleh otoritas sertifikat eksternal (CA) yang dapat dipercaya. Jadi saya menemukan Let's Encrypt yang melakukan semua pekerjaan untuk Anda dan bahkan lebih mudah diatur dan yang terbaik adalah: itu benar-benar gratis.
Instalasi
1) Hapus file ssl cert lama Anda yang telah Anda buat dengan menggunakan OpenSSL
2) Buka backports untuk mendapatkan klien certbot di Debian. Anda harus tahu bahwa ini akan membuka lubang untuk perangkat lunak yang belum selesai! Instal hanya paket ketika Anda mengetahui tentang apa yang Anda lakukan.
3) Perbarui sistem linux Anda
4) Instal certbot
5) Mengatur apache ServerName dan ServerAlias
6) Edit file konfigurasi apache
7) Periksa sintaks yang benar
8) Jika file konfigurasi terlihat baik, mulai ulang server apache
9) Siapkan sertifikat menggunakan certbot dan ikuti instruksi di layar.
Pembaruan
Semua sertifikat oleh Let's Encrypt berlaku hingga 3 bulan. Untuk memperbarui, Anda dapat menjalankannya secara manual
Atau mengotomatisasi layanan ini sebagai pekerjaan cron
dan masukkan baris berikut untuk meminta pembaruan setiap hari Senin pukul 2:30 pagi.
Anda dapat mengikuti tutorial yang lebih lengkap di sini: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
sumber
Jika Anda tidak melihat kesalahan SSL lainnya, dan jika Anda telah mencoba mengatur 'debugLogLevel' di file httpd.conf, pesan kesalahan ini juga dapat menyarankan 'Listen 443' hilang dari file httpd.conf.
sumber
Itu bukan kesalahan - itu adalah peringatan. Sangat mungkin untuk menjalankan mod_ssl dengan sertifikat yang tidak cocok dengan nama server yang ditentukan selama Anda memiliki host ssl default yang ditentukan dan nama umum pada sertifikat cocok dengan nama host yang digunakan oleh klien untuk terhubung.
Yang terakhir tampaknya tidak benar dalam kasus Anda. Seperti kata Jacob, Anda perlu menentukan nama host yang benar sebagai nama umum (atau alias) ketika Anda membuat CSR .
Untuk melihat nama apa yang saat ini ada di sertifikat:
Jika ada beberapa sertifikat yang diinstal pada mesin dan disajikan pada alamat IP yang sama, maka:
(di mana nilai $ {...} adalah placeholder yang harus Anda ganti dengan nilai yang relevan).
sumber
openssl s_client
menunjukkan subjek dan penerbit untuk sertifikat daun, yang merupakan satu-satunya Anda perlu di sini, tanpa-showcerts
, tetapi untuk sertifikat nyata-CA sejak sekitar 2010 (dan sertifikat DIY oleh orang yang kompeten ) apa yang perlu Anda lihat bukan subjek tetapi ekstensi SubjectAltName (SAN) dan untuk itu Anda perluopenssl s_client -connect h:p [-servername h] | openssl x509 -noout -text
Saya mengalami masalah ini baru-baru ini, ketika sertifikat yang ditandatangani sendiri saya berakhir. Saya mencari di Google dan baru saja menyalin perintah untuk membuat sertifikat baru dari satu situs web.
Dalam file konfigurasi apache saya: /etc/apache2/sites-available/default-ssl.conf. File sertifikat & file kunci merujuk ke nama file berikut.
Oleh karena itu, kesalahan yang terlihat di sini dalam kasus saya lebih mudah diperbaiki, hanya dengan memberikan lokasi yang benar dari file kunci sertifikat saat membuat sertifikat ssl.
Jadi, inilah perintah yang seharusnya saya gunakan & ketik dengan benar.
sumber
Dalam kasus saya, saya telah menyelesaikan ini dengan mengganti file konfigurasi apache ssl saya untuk setiap domain yang bersangkutan:
oleh :
Karena sertifikat saya untuk "www.mydomain.com" dan bukan untuk "mydomain.com"
file apache lengkap:
sumber
Kami harus menambahkan ServerName dan ServerAlias ke file default-ssl, bukan hanya file conf untuk domain tertentu.
Ini menghilangkan kesalahan sial bagi kita.
sumber