LetsEncrypt SSL
Instalacja certbota
sudo apt-get install certbot python3-certbot-nginx.
Skrypt instalacji certyfikatu
#!/bin/bash
# Sprawdzamy, czy skrypt jest uruchamiany z uprawnieniami administratora
if [[ $EUID -ne 0 ]]; then
echo "Ten skrypt musi być uruchamiany z uprawnieniami administratora (root)."
exit 1
fi
# Odczytujemy nazwę domeny z argumentu linii poleceń
if [ $# -ne 1 ]; then
echo "Użycie: $0 <nazwa_domeny>"
exit 1
fi
domain="$1"
# Instalujemy certyfikat Let's Encrypt za pomocą Certbota
certbot certonly --nginx -d $domain
# Aktualizujemy konfigurację Nginx, aby używać nowego certyfikatu
if [ $? -eq 0 ]; then
nginx -t && systemctl reload nginx
echo "Certyfikat SSL dla domeny $domain został pomyślnie zainstalowany i skonfigurowany w Nginx."
else
echo "Błąd podczas instalowania certyfikatu SSL dla domeny $domain."
fiSkrypt instalacji certyfikatu wildcard
#!/bin/bash
# Sprawdzamy, czy skrypt jest uruchamiany z uprawnieniami administratora
if [[ $EUID -ne 0 ]]; then
echo "Ten skrypt musi być uruchamiany z uprawnieniami administratora (root)."
exit 1
fi
# Odczytujemy nazwę domeny z argumentu linii poleceń
if [ $# -ne 1 ]; then
echo "Użycie: $0 <nazwa_domeny>"
exit 1
fi
domain="$1"
# Instalujemy certyfikat Let's Encrypt jako wildcard
certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d "*.$domain"
# Aktualizujemy konfigurację Nginx, aby używać nowego certyfikatu
if [ $? -eq 0 ]; then
nginx -t && systemctl reload nginx
echo "Certyfikat SSL jako wildcard (*.${domain}) został pomyślnie zainstalowany i skonfigurowany w Nginx."
else
echo "Błąd podczas instalowania certyfikatu SSL jako wildcard (*.${domain})."
fiUżycie: ./installwildcardssl.sh twojadomena.com.
Automatyczne odnowienie
sudo crontab -e.
0 0 1 /usr/bin/certbot renew --quiet.
Test automatycznego odnowienia certyfikatu
sudo certbot renew --dry-run.
Przekierowanie http>https w nginx
Zmiana w pliku konfiguracyjnym host-a domeny:
server {
listen 80;
listen[::]:80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443;
server_name example.com www.exmaple.com;
ssl_certificate /etc/cert/fullchain.pem;
ssl_certificate_key /etc/cert/private.pem;
...
}