Makale Rehberi
Let's Encrypt'e nasıl başvurulur?
Let's Encrypt SSL Sertifika Prensibi ve Kurulum Eğitimi
SSL nedir? Chen Weiliang, önceki makalesinde bu konuyu ele almıştı : " HTTP ve HTTPS arasındaki fark nedir? SSL şifreleme sürecinin ayrıntılı açıklaması ."
Gelişmiş şifreli SSL sertifikaları satın almak zorunda olan e-ticaret sitelerinin yanı sıra , WeChat resmi hesaplarını tanıtmak için web sitelerini kullanan yeni medya profesyonelleri de ücretsiz şifreli SSL sertifikaları yükleyebilirler. Bu, SEO'ya yardımcı olabilir ve web sitesinin arama motorlarındaki anahtar kelime sıralamasını iyileştirebilir.

Let's Encrypt'in kendine ait bir iş akışı var ( https://certbot.eff.org/ ). Linux kullanıcıları bu iş akışına başvurabilir ve bu eğitim kılavuzunu takip edebilirler.
Önce certbot-auto aracını indirin, ardından aracın yükleme bağımlılıklarını çalıştırın.
wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
SSL sertifikası oluştur
Ardından, Chen Weiliang'ın blog alan adını örnek alarak, kendi ihtiyaçlarınıza göre değiştirin ve aşağıdaki komutu SSH üzerinden çalıştırın.
Komutu şurada değiştirdiğinizden emin olun:
- posta kutusu
- sunucu yolu
- web sitesi alan adı
Tek etki alanı tek dizin, bir sertifika oluşturun:
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com
Çok etki alanlı tek dizin, bir sertifika oluşturun: (yani, birden çok etki alanı adı, tek dizin, aynı sertifikayı kullanın)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com
Oluşturulan SSL sertifikası şuraya kaydedilecektir:/etc/letsencrypt/live/www.chenweiliang.com/ İçindekiler altında.
Birden çok alan adı ve birden çok dizin, bir sertifika oluşturun: (yani, birden çok alan adı, birden çok dizin, aynı sertifikayı kullanın)
./certbot-auto certonly --email [email protected] --agree-tos --no-eff-email --webroot -w /home/admin/web/chenweiliang.com/public_html -d www.chenweiliang.com -d img.chenweiliang.com -w /home/eloha/public_html/site/etufo.org -d www.etufo.org -d img.etufo.org
Let's Encrypt sertifikası başarıyla yüklendikten sonra SSH istemi aşağıdaki gibi görünecektir:
ÖNEMLİ NOTLAR:
– Tebrikler!Sertifikanız ve ch'nizain şuraya kaydedildi:
/etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem
Anahtar dosyanız şuraya kaydedildi:
/etc/letsencrypt/live/www.chenweiliang.com/privkey.pem
Sertifikanızın süresi 2018-02-26 tarihinde sona erecek. Yeni veya ince ayarlı bir sertifika almak için
gelecekte bu sertifikanın sürümü, sadece certbot-auto'yu çalıştırın
Sertifikalarınızın *tümünü* etkileşimli olmayan bir şekilde yenilemek için şunu çalıştırın:
"certbot-otomatik yenileme"
- Certbot'u seviyorsanız, lütfen çalışmalarımızı şu şekilde desteklemeyi düşünün:
ISRG / Let's Encrypt'e bağış yapmak için: https://letsencrypt.org/donate
EFF'ye bağış: https://eff.org/donate-le
SSL Sertifika Yenileme
Sertifika yenileme işlemi de crontab kullanarak otomatik yenileme ile oldukça kolaydır . Crontab kurulu olmayan bazı Debian sürümleri için önce manuel olarak kurabilirsiniz.
apt-get install cron
Nginx ve Apache için aşağıdaki komutlar /etc/crontab dosyasına girilir; bu da komutların her 10 günde bir yenileneceği ve 90 günlük bir geçerlilik süresinin yeterli olacağı anlamına gelir.
Nginx crontab dosyası, lütfen ekleyin:
0 3 */10 * * /root/certbot-auto renew --renew-hook "/etc/init.d/nginx reload"
Apache crontab dosyası, lütfen şunu ekleyin:
0 3 */10 * * /root/certbot-auto renew --renew-hook "service httpd restart"
SSL sertifikası Apache yapılandırması
Şimdi Apache yapılandırmasında değişiklik yapmamız gerekiyor.
İpuçları:
- Eğer kullanırsanCWP Kontrol Paneli, Alan adı ekle onayında Otomatik olarak bir SSL sertifikası oluştur, Apache için SSL sertifikasını otomatik olarak yapılandırır.
- Aşağıdaki adımlardan daha fazlasını yaparsanız, Apache'yi yeniden başlattıktan sonra bir hata oluşabilir.
- Bir hata varsa, manuel olarak eklediğiniz konfigürasyonu silin.
httpd.conf dosyasını düzenleyin ▼
/usr/local/apache/conf/httpd.conf
▼ bul
Listen 443
- (önceki yorum numarasını kaldırın #)
veya 443 numaralı dinleme bağlantı noktasını ekleyin ▼
Listen 443
SSH, Apache dinleme bağlantı noktasını kontrol edin ▼
grep ^Listen /usr/local/apache/conf/httpd.conf
▼ bul
mod_ssl
- (önceki yorum numarasını kaldırın #)
veya ▼ ekleyin
LoadModule ssl_module modules/mod_ssl.so
▼ bul
httpd-ssl
- (önceki yorum numarasını kaldırın #)
Ardından, SSH aşağıdaki komutu yürütün (yolu kendinize göre değiştirmeyi unutmayın):
at >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF Listen 443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLHonorCipherOrder on SSLProtocol all -SSLv2 -SSLv3 SSLProxyProtocol all -SSLv2 -SSLv3 SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex "file:/usr/local/apache/logs/ssl_mutex" EOF
Ardından, oluşturduğunuz web sitesinin Apache yapılandırmasının sonunda, </VirtualHost> bölümünün altında, aşağıdaki adımları izleyin.
SSL bölümünün yapılandırma dosyasını ekleyin (yorumu kaldırmayı ve yolu kendinize göre değiştirmeyi unutmayın):
<VirtualHost *:443> DocumentRoot /home/admin/web/chenweiliang.com/public_html //网站目录 ServerName www.chenweiliang.com:443 //域名 ServerAdmin [email protected] //邮箱 ErrorLog "/var/log/www.chenweiliang.com-error_log" //错误日志 CustomLog "/var/log/www.chenweiliang.com-access_log" common //访问日志 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/www.chenweiliang.com/fullchain.pem //之前生成的证书 SSLCertificateKeyFile /etc/letsencrypt/live/www.chenweiliang.com/privkey.pem //之前生成的密钥 <Directory "/home/admin/web/chenweiliang.com/public_html"> //网站目录 SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All suPHP_UserGroup eloha eloha //用户组(有些服务器配置需要,有些可能不需要,出错请删除此行) Order allow,deny Allow from all DirectoryIndex index.html index.phps </Directory> </VirtualHost>
Sonunda Apache'yi yeniden başlatın:
service httpd restart
Apache, HTTPS'ye HTTP yönlendirmesini zorlar
- Birçok web isteği her zaman yalnızca SSL ile çalışabilir.
- SSL'yi her kullandığımızda, web sitesine SSL üzerinden erişilmesi gerektiğinden emin olmalıyız.
- Herhangi bir kullanıcı web sitesine SSL olmayan bir URL ile erişmeye çalışırsa, SSL web sitesine yönlendirilmelidir.
- Apache mod_rewrite modülünü kullanarak SSL URL'sine yönlendirin.
- LAMP tek tıklama kurulum paketini, yerleşik otomatik SSL sertifikası yüklemesini ve HTTPS'ye zorunlu yeniden yönlendirmeyi, HTTPS'ye yeniden yönlendirmeyi kullanırsanızYürürlükte, bir HTTPS yönlendirmesi eklemeniz gerekmez.
Yönlendirme kuralı ekle
- Apache'nin yapılandırma dosyasında, web sitesinin sanal ana bilgisayarını düzenleyin ve aşağıdaki ayarları ekleyin.
- Aynı ayarları .htaccess dosyanızdaki web sitenizdeki belge köküne de ekleyebilirsiniz.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]Yalnızca HTTPS'ye yönlendirmek için belirli bir URL belirtmek istiyorsanız:
RewriteEngine On RewriteRule ^message$ https://www.etufo.org/message [R=301,L]
- Birisi erişmeye çalışırsa mesaj , sayfa https'ye atlar ve kullanıcı URL'ye yalnızca SSL ile erişebilir.
.htaccess dosyasının etkili olması için Apache'yi yeniden başlatın:
service httpd restart
注意 事项
- Lütfen yukarıdaki e-posta adresini e-posta adresinizle değiştirin.
- Lütfen yukarıdaki web sitesi alan adını web sitenizin alan adı ile değiştirmeyi unutmayın.
Yönlendirme kuralı konumu sorunu
Yönlendirme kurallarını sözde statik kurallar altına yerleştirirken, HTTP'nin sitenin tamamını HTTPS'ye yönlendirememesi sorunuyla sık sık karşılaşabilirsiniz.
Başlangıçta yönlendirme kodunu .htaccess'e kopyaladık ve aşağıdaki durumlarda görünecektir ▼
![Yönlendirme kuralı [L] yukarıdadır. Yönlendirme kuralı [L] yukarıdadır.](https://img.chenweiliang.com/2018/03/https-rule-1.png)
- [L], geçerli kuralın son kural olduğunu belirtir, aşağıdaki yeniden yazma kurallarını analiz etmeyi bırakın.
- Bu nedenle, yeniden yönlendirilen makale sayfasına erişirken [L] aşağıdaki kuralı durdurur, bu nedenle yeniden yönlendirme kuralı çalışmaz.
HTTP ana sayfasına erişirken, URL yeniden yazma kurallarını atlayarak yönlendirme kurallarını uygulayacak bir URL yönlendirmesi tetiklemek istiyoruz, böylece tüm site HTTP'den HTTPS'ye yönlendirilebilsin.
HTTPS yönlendirme kurallarını [L] kurallarının altına değil , [L] kurallarının üstüne yerleştirin. ▼
![Sözde statik SSL yönlendirme kuralları [L] aşağıdadır. Sözde statik SSL yönlendirme kuralları [L] aşağıdadır.](https://img.chenweiliang.com/2018/03/pseudo-static-ssl-jump.png)
Genişletilmiş okuma:
- http ve https arasındaki fark nedir? SSL şifreleme işleminin ayrıntılı açıklaması
- CWP kontrol panelinde Let's Encrypt SSL sertifikasını yükledikten sonra 500 hatası alırsam ne yapmalıyım?
- www üst düzey alan adı olmadan otomatik olarak ikinci düzey alan adına atlar: kök alan adı 301, www'yi yeniden yönlendirir
Umarım Chen Weiliang'ın blogunda ( https://www.chenweiliang.com/ ) paylaşılan "Let's Encrypt'e Nasıl Başvurulur? Let's Encrypt Ücretsiz SSL Sertifikalarının Prensipleri ve Kurulum Rehberi" başlıklı makale size yardımcı olur.
Bu makalenin bağlantısını paylaşmaktan çekinmeyin: https://www.chenweiliang.com/cwl-512.html
