Apache'yi SSL ile Yapılandırma
Aşağıdaki talimatlar, hem güvenli bir sunucu (bağlantı noktasında) çalıştırmak istediğinizi varsayar. 443
) ve normal bir sunucu (bağlantı noktasında 80
). Öncelikle, sunucuyu her iki bağlantı noktasını da dinleyecek şekilde yapılandırmanız gerekir. Ya düzenleyin /etc/apache2/ports.conf
(Debian'da; bu apache2.conf
) veya düzenleyin /etc/apache2/apache2.conf
doğrudan hatları dahil etmek için:
Dinle 80 Dinle 443
Ardından düzenle /etc/apache2/sites-enabled/yoursite
SSL ayarlarını kullanmak için. Düzenli ve güvenli sunucu ayarlarını VirtualHosts kullanarak ayırmak, bakım kolaylığı açısından en kolay seçenektir. VirtualHosts bölümlerinin dışındaki herhangi bir konfigürasyon (ServerAdmin'i ayarlamak gibi) hem (ve diğer) VirtualHosts için geçerli olacaktır.
Apache 2.4.8 ve üzeri sürümler, sunucu sertifikanızın herhangi bir ara sertifikayla tek bir dosyada birleştirilmesini bekler. SSL.com'dan zincirlenmiş bir dosya indirmek için, Nginx
portal hesabınıza indirme linki:
Alternatif olarak, mevcut sertifikanızı ve ara dosyalarınızı aşağıdaki gibi bir komutla birleştirebilirsiniz:
$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt
Aşağıdaki bölümü yapılandırma dosyanıza ekleyin:
# =============================================== # SSL /TLS ayarlar # ============================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / siteniz" SSLCertificateFile üzerinde SSLEngine /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key
Bu yapılandırma hakkında birkaç not:
SSLEngine
sunucunun SSL kullanması için etkinleştirilmesi gerekir.DocumentRoot
bu sanal ana bilgisayarın kök dizinini ayarlar. Bu, güvenli içeriği tamamen normal içerikten ayırabileceğiniz anlamına gelir.SSLCertificateFile
dosyayı sunucu sertifikanız ve ara zincirinizle yerleştirdiğiniz konuma ayarlanmalıdır.SSLCertificateKeyFile
özel anahtar dosyanızı koyduğunuz konuma ayarlanmalıdır.
Aşağıdaki bölümü yapılandırma dosyanıza ekleyin:
# =============================================== # SSL /TLS ayarlar # ============================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / siteniz" SSLCertificateFile üzerinde SSLEngine /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / private / ca-bundle- client.crt
Bu yapılandırma hakkında birkaç not:
SSLEngine
sunucunun SSL kullanması için etkinleştirilmesi gerekir.DocumentRoot
bu sanal ana bilgisayarın kök dizinini ayarlar. Bu, güvenli içeriği tamamen normal içerikten ayırabileceğiniz anlamına gelir.SSLCertificateFile, SSLCertificateChainFile,
veSSLCertificateKeyFile
, sırasıyla sertifikanızı, ara ve özel anahtar dosyalarınızı koyduğunuz konumlara ayarlanmalıdır.
80 numaralı bağlantı noktasında normal sunucuyu çalıştırmak için yapılandırma dosyasına aşağıdaki bölümü ekleyin:
NameVirtualHost *: 80 DocumentRoot "/ var / www / siteniz" # Ana bilgisayara özel dizin kurulumu, seçenekler, vb # Bu seçeneklerin çoğu, VirtualHosts # bölümlerinin dışında ayarlanmış olabilir.
Düzenlenen yapılandırma dosyasını kaydettikten sonra web sunucusunu yeniden başlatın. Sertifikanızı oluştururken bir parola kullandıysanız, sorulduğunda bunu girmeniz gerekecektir.
Test yapmak
Zaten içeriğiniz yoksa, web sunucunuzun kök dizininin bulunduğu yerde temel bir index.html sayfası oluşturun.
Ardından web tarayıcınızı https://www.yoursite.com
. Bir SSL bağlantısının açıldığını ve sayfanın teslim edildiğini görmelisiniz. Kendinden imzalı bir sertifika kullanıyorsanız, tarayıcınız sizi sunucunun kimliğinin doğrulanamayacağı konusunda uyaran bir uyarı görüntüler. Sertifikayı görüntülemeyi ve kabul etmeyi seçebilirsiniz. Harici bir sertifika kullanılıyorsa, bunların tümü müdahale olmadan yapılmalıdır.
Korunan içeriğe http: // kullanarak erişemeyeceğinizden de emin olun. Eğer denerseniz, bir hata mesajı almanız gerekir.
Sorun giderme
Beklendiği gibi çalışmıyorsa, önce sunucunuzun gerçekten çalışıp çalışmadığını kontrol edin. ps -a | grep apache
. Bu hiçbir şey döndürmezse, yeniden başlatmayı deneyin ve terminaldeki hata mesajlarını kontrol edin.
Ayrıca, anahtar ve sertifika dosyalarınızdaki izinlerin (yukarıya bakın) yanı sıra test HTML dosyanızdaki ve üst dizinindeki izinlerin doğru ayarlandığını da kontrol edin.
Ardından günlükleri kontrol edin. Hem ana sunucu günlüklerini hem de yukarıdaki yapılandırma dosyanızda kurduğunuz SSL günlüklerini kontrol etmelisiniz. Yararlı bir şey bulamazsanız, Apache2 yapılandırma dosyasındaki LogLevel değerini "hata ayıklama" olarak değiştirmeyi deneyin, Apache2'yi yeniden başlatın ve tekrar test edin. Bu, daha fazla günlük dosyası verisi vermelidir.
80 numaralı bağlantı noktasında da normal bir web sunucusu çalıştırıyorsanız, sorunun web sunucusunda mı yoksa SSL bağlantısında mı olduğunu belirlemenize yardımcı olması için https: // yerine http: // aracılığıyla bir test sayfası getirmeyi deneyin. Yukarıdaki kurulumda, web sunucusunun kök dizininin http: // ve https: // için farklı olduğunu, dolayısıyla aynı içeriğe erişemeyeceğinizi (veya erişemeyeceğinizi!) Unutmayın. Yine de http: // kök dizinindeki test sayfanız iyi çalışıyorsa ve https: // kök dizinindeki test sayfanız çalışmıyorsa, sorunu saptamanıza yardımcı olabilir.
Sorun SSL bağlantısı ise, kullanışlı bir araç s_client
, sorun giderme için bir tanı aracıdır TLS/ SSL bağlantıları. Temel kullanım şudur: /usr/bin/openssl s_client -connect localhost:443
. Belgeleri kontrol edebileceğiniz çok sayıda başka seçenek de var. Hata mesajları alırsanız, bu sorunu bulmanıza yardımcı olacaktır.