Apache2 web sunucumda SSL kurmaya çalışıyorum, ancak görünüşe göre hiç çalışmıyor.
openssl ile sertifika dosyaları oluşturmak için bir öğretici izledim ve /etc/apache2/sites-available/default-ssl.conf
dosyasını düzgün bir şekilde yapılandırdım.
Web sitemi https ile her açmaya çalıştığımda, tarayıcım güvenlik sorunları nedeniyle bağlanmayı reddediyor. Web sitemi doğru yapılandırmadığımı söylüyor.
Benim /var/log/apache2/error.log
dosyamda, sunucu sertifikamın sunucu adıyla eşleşen bir kimlik içermediğini söyleyen uyarılar alıyorum.
[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'
Bunu nasıl çözebileceğimize dair bir fikriniz var mı? Saygılarımla teşekkürler!
Tamam, bu yazının son zamanlarda oldukça sık görüntülendiğini fark ettim ve bu yüzden birçok insanın benimle aynı sorunla karşı karşıya olduğu anlaşılıyor. Eğer öyleyse bu size yardımcı olabilir.
Web sunucum için bir SSL sertifikası oluşturmak için basit bir adım adım öğreticiyi takip ettim. Piyasadaki pek çok öğretici gibi benim izlediğim öğreticinin sonucu da OpenSSL kullanan kendinden imzalı bir sertifika oldu. Evet kendinden imzalı, sorun da buydu. Tarayıcı, kendi imzaladığı sertifika nedeniyle sunucuya güvenemedi. Ben olsam ikisini de yapmazdım...
Bir sertifikanın harici güvenilir bir sertifika otoritesi (CA) tarafından imzalanması gerekir. Bu yüzden tüm işi sizin için yapan ve kurulumu daha da kolay olan Let's Encrypt ile karşılaştım ve en iyisi: tamamen ücretsiz.
OpenSSL kullanarak oluşturduğunuz eski ssl sertifika dosyalarınızı silin
Debian'da certbot istemcisini almak için backports'u açın. Bunun bitmemiş yazılımlar için bir delik açacağını bilmelisiniz! Sadece ne yaptığınızın farkında olduğunuzda paketleri yükleyin.
echo 'deb http://ftp.debian.org/debian jessie-backports main' | sudo tee /etc/apt/sources.list.d/backports.list
sudo apt-get update
sudo apt-get install python-certbot-apache -t jessie-backports
sudo nano /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
. . .
ServerName example.com
ServerAlias www.example.com
. . .
</VirtualHost>
sudo apache2ctl configtest
sudo systemctl restart apache2
sudo certbot --apache
Let's Encrypt tarafından verilen tüm sertifikalar 3 ay boyunca geçerlidir. Yenilemek için manuel olarak çalıştırabilirsiniz
sudo certbot renew
Veya bu hizmeti bir cron işi olarak otomatikleştirin
sudo crontab -e
ve her Pazartesi saat 2:30'da bir yenileme çağırmak için aşağıdaki satırı girin.
. . .
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
Daha ayrıntılı bir öğreticiyi buradan takip edebilirsiniz: https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-debian-8
Bunlar hata değil, uyarıdır. Varsayılan bir ssl ana bilgisayarı tanımladığınız ve sertifikadaki ortak ad istemcilerin bağlanmak için kullandığı ana bilgisayar adıyla eşleştiği sürece mod_ssl'yi tanımlı sunucu adlarıyla eşleşmeyen bir sertifika ile çalıştırmak oldukça mümkündür.
Sizin durumunuzda ikincisi doğru görünmüyor. Jacob'ın dediği gibi, bir CSR oluştururken *ortak ad (veya bir takma ad) olarak doğru ana bilgisayar adını belirtmeniz gerekir.
Şu anda sertifikada hangi isim(ler)in olduğunu görmek için:
openssl s_client -showcerts -connect ${HOSTNAME}:443
Makinede birden fazla sertifika yüklüyse ve aynı IP adresinden hizmet veriyorsa:
openssl s_client -showcerts -connect ${HOSTIP}:443 -servername ${HOSTNAME}
(burada ${...} değerleri ilgili değerlerle değiştirmeniz gereken yer tutuculardır).