Let's Encrypt Internet Security Research Group ("ISRG") tarafından
geliştirilen ve Linux Foundation tarafından desteklenen Security
Research Group tarafından ilk olarak 2015 yılında üretilmiş bir açık
sertifika otoritesidir. Tüm amaç kamu yararı için ücretsiz, otomatize ve
açık bir sertifika doğrulama sistemidir.
Let's Encrypt web sunucuların HTTP yerine HTTPS kullanılmasını
yaygınlaştırmak üzere SSL/TLS sertifikaların ücretsiz olarak üretilmesi
ve dağıtılması amacıyla kurulmuştur. Sektörün önde gelen şirketleri
Cisco, Mozilla ve Electronic rontier Foundation firmaları tarafından
finanse edilmektedir ve bu servis sponsorlar desteği ile devamlılığını
sağlamaktadır.
Let's Encrypt ile ücretsiz olarak SSL sertifikaları üretilebilmekte.
Ubuntu 20.04 Server üzerinde bu sertifikanın üretilmesi ile ilgili
basamakları bu dökümanda bulabilirsiniz.
Öncelikle depolarımızı güncelleyelim,
sudo apt-get update
Sonrasında gerekli uygulamaları yükleyelim,
$ sudo apt-get install letsencrypt
Bu aşamada Let's Encrypt üzerinden sertifika oluşturmak için gerekli
uygulamalar sistemimizde yüklü halde. Let's Encrypt sertifika
oluşturmak için domainin yöneticisi olduğunuzu ispat etmenizi istiyor.
Wildcard tipinde sertifika oluşturmak için "DNS Challenge" yöntemini
kullanmaz zorunlu. Sertifikaları oluşturmak için şu komutu kullanıyoruz,
$ sudo certbot certonly --manual --preferred-challenges=dns --email mailadresiniz@domain.com --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d domain.com -d *.domain.com
Parametreler şöyle,
- certonly: Bir sertifika oluştur veya yenile ama yükleme
- manual: Sertifikayı etkileşimli olarak oluştur
- preferred-challenges: Etki alanı sahipliğini doğrulamak için DNS Challange kullan
- server: Sertifika oluşturmak için kullanılacak sunucu adresi
- agree-tos: ACME sunucusunun üyelik şartlarını kabul et
- d: Sertifika oluşturulacak domain adı
Komutu verdiğimizde şu çıktılar üretilecektir,
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for domain.com
dns-01 challenge for domain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.
Are you OK with your IP being logged?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.domain.com with the following value:
T6LEeoXaGoxB3vcoG0ZhmlniM3VBV3BKA2se9E637UY
Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Bu aşamada çıktıda belirtilen DNS TXT kaydını DNS sunucularına
girmemiz gerekiyor. Tinydns DNS sunucusu için yukarıda verilen anahtara
uygun girdi şu şekilde olmalı,
'_acme-challenge.domain.com:Qz8v7yHVUdUnB3N5O-qmqZPySrs82NCJXkxpOGmbpYE:3600
DNS sunuculara gerekli kaydı girdikten sonra enter tuşuna basarak
işleme devam ediyoruz (işlemin zaman aşımına uğramaması için kaydı hızlı
girmek gerekiyor). Eğer her şey yolunda gitmiş ise şu ekran çıktılarını
görmemiz gerekiyor,
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/domain.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/domain.com/privkey.pem
Your cert will expire on 2022-01-17. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Sertifikalarımızı certbot ile bir kez daha görüntüleyelim,
$ sudo certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
Certificate Name: domain.com
Domains: domain.com *.domain.com
Expiry Date: 2022-01-17 08:01:37+00:00 (VALID: 89 days)
Certificate Path: /etc/letsencrypt/live/domain.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/domain.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Evet gördüğünüz üzere sertifikamız ve private key başarı ile
oluşturulmuş durumda.. Şimdi yapmamız gereken son bir işlem var. Let's
Encrypt sertfikaları 90 gün için oluşturduğu için sertifikas süresi sona
erdiğinde yenilenmesi için bir cron işi girmemiz lazım.
$ sudo crontab -e
Komutu ile açtığımız alana şu kaydı ekliyoruz,
0 1 * * * /usr/bin/certbot renew >> /var/log/letsencrypt/renew.log
Evet tüm aşamaları tamamladık. Artık Let's Encrypt üzerinden ücretsiz olarak SSL sertifikamızı kullanabiliriz..