SSL sertifikato turėjimas ir jo teisingas įdiegimas yra du skirtingi dalykai. Galite turėti geriausią sertifikatą rinkoje, tačiau jei jis įdiegtas netinkamai, lankytojai vis tiek matys klaidos pranešimus, naršyklė rodys „Nesaugu” įspėjimą, o paieškos varikliai ignoruos jūsų HTTPS versiją.
Šis vadovas apima viską nuo pasiruošimo iki galutinio patikrinimo. Nesvarbu, ar naudojate Apache, Nginx, cPanel, Plesk ar WordPress, rasite tikslias instrukcijas savo aplinkai. Straipsnio pabaigoje rasite dažniausiai pasitaikančių klaidų sąrašą su konkrečiais sprendimais.
Prieš pradedant: ką reikia žinoti ir turėti
SSL diegimo prielaidos
Prieš pradėdami diegimą, įsitikinkite, kad turite:
- Prieigą prie serverio arba prieglobos valdymo pulto. Jei naudojate bendrinamą prieglobą su cPanel ar Plesk, pakaks prisijungimo prie valdymo pulto. Jei naudojate VPS arba dedikuotą serverį, reikės SSH prieigos su root arba sudo teisėmis.
- Domeno nuosavybės patvirtinimą. Domenas turi būti nukreiptas į jūsų serverį (A arba CNAME DNS įrašas). Sertifikavimo institucija patvirtins domeno nuosavybę per el. paštą, DNS arba HTTP failą.
- SSL sertifikato failus (jei perkate mokamą). Mokamo sertifikato atveju turėsite tris failus: sertifikato failą (.crt), privatų raktą (.key) ir tarpinių sertifikatų grandinę (CA bundle arba intermediate certificate).
- Žiniatinklio serverio programinę įrangą. Turite žinoti, kokią programinę įrangą naudoja jūsų serveris: Apache, Nginx, LiteSpeed, IIS ar kitą. Kiekvienai iš jų SSL konfigūracija skiriasi.
SSL sertifikatų failų tipai ir formatai
Prieš diegimą verta suprasti, kokius failus gausite ir ką kiekvienas iš jų reiškia:
PEM (.pem, .crt, .cer) , dažniausias formatas Linux serveriuose. Tekstinis failas, prasidedantis eilute -----BEGIN CERTIFICATE-----. Apache ir Nginx naudoja šį formatą.
DER (.der, .cer) , binarinis PEM atitikmuo. Naudojamas Java aplinkose ir kai kuriose Windows konfigūracijose.
PFX / PKCS#12 (.pfx, .p12) , konteinerinis formatas, apjungiantis sertifikatą, privatų raktą ir tarpinę grandinę viename faile. Naudojamas Windows IIS serveriuose ir kai kuriose debesų platformose.
PKCS#7 (.p7b, .p7c) , apjungia sertifikatą ir tarpinę grandinę be privataus rakto. Naudojamas su Microsoft produktais.
Jei gavote sertifikatą vienu formatu, bet jūsų serveris reikalauja kito, galite konvertuoti naudodami OpenSSL:
# PEM į PFX
openssl pkcs12 -export -out sertifikatas.pfx \
-inkey privatusraktas.key \
-in sertifikatas.crt \
-certfile ca-bundle.crt
# PFX į PEM
openssl pkcs12 -in sertifikatas.pfx \
-out sertifikatas.pem -nodes
# DER į PEM
openssl x509 -inform der -in sertifikatas.der \
-out sertifikatas.pem
# PEM į DER
openssl x509 -outform der -in sertifikatas.pem \
-out sertifikatas.der
CSR generavimas: pirmas žingsnis mokamam sertifikatui
CSR (Certificate Signing Request) yra užšifruotas failas, kurį siunčiate sertifikavimo institucijai. Jame yra jūsų domeno informacija ir viešasis raktas. CSR generavimo metu automatiškai sukuriamas ir privatus raktas, kurį turite saugoti.
Svarbu: Privatų raktą (.key failą) saugokite kaip banko slaptažodį. Jei jis bus prarastas arba nutekės, turėsite pergeneruoti visą sertifikatą. Niekada nesiųskite privataus rakto el. paštu ir nelaikykite viešose saugyklose.
CSR generavimas su OpenSSL
openssl req -new -newkey rsa:2048 -nodes \
-keyout jusudomenas.lt.key \
-out jusudomenas.lt.csr
Sistema paprašys užpildyti šiuos laukus:
| Laukas | Pavyzdys | Pastaba |
|---|---|---|
| Country Name (C) | LT | Dviejų raidžių šalies kodas (ISO 3166) |
| State or Province (ST) | Vilniaus apskritis | Pilnas regiono pavadinimas |
| Locality (L) | Vilnius | Miestas |
| Organization (O) | UAB Pavyzdys | Oficialus įmonės pavadinimas (DV gali palikti tuščią) |
| Organizational Unit (OU) | IT skyrius | Nebūtinas, daugelis CA šį lauką ignoruoja |
| Common Name (CN) | jusudomenas.lt | Tikslus domeno vardas |
| Email Address | admin@jusudomenas.lt | Nebūtinas |
CSR generavimas su SAN (Subject Alternative Names)
Jei jūsų sertifikatas turi apimti kelis domenus ar subdomenus, reikės CSR su SAN priedais. Sukurkite konfigūracijos failą:
# san.cnf
[req]
default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn req_extensions = v3_req
[dn]
C = LT ST = Vilniaus apskritis L = Vilnius O = UAB Pavyzdys CN = jusudomenas.lt
[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = jusudomenas.lt DNS.2 = www.jusudomenas.lt DNS.3 = shop.jusudomenas.lt DNS.4 = blog.jusudomenas.lt
Tada generuokite CSR su šia konfigūracija:
openssl req -new -newkey rsa:2048 -nodes \
-keyout jusudomenas.lt.key \
-out jusudomenas.lt.csr \
-config san.cnf
CSR patikrinimas
Prieš siunčiant CSR sertifikavimo institucijai, patikrinkite jo turinį:
openssl req -text -noout -verify -in jusudomenas.lt.csr
Ši komanda parodys visą CSR informaciją. Įsitikinkite, kad domeno vardas (Common Name) ir SAN įrašai yra teisingi.
Let’s Encrypt SSL diegimas su Certbot
Let’s Encrypt yra populiariausias nemokamo SSL sertifikato tiekėjas. Certbot yra oficialus Let’s Encrypt klientas, kuris automatizuoja sertifikato gavimą, diegimą ir atnaujinimą.
Certbot diegimas Ubuntu / Debian
# Atnaujinkite paketų sąrašą
sudo apt update
# Įdiekite Certbot
sudo apt install certbot
# Papildomai įdiekite įskiepį pagal žiniatinklio serverį
# Nginx:
sudo apt install python3-certbot-nginx
# Apache:
sudo apt install python3-certbot-apache
Certbot diegimas CentOS / RHEL / AlmaLinux
# Įdiekite EPEL saugyklą (jei dar neįdiegta)
sudo dnf install epel-release
# Įdiekite Certbot
sudo dnf install certbot
# Nginx:
sudo dnf install python3-certbot-nginx
# Apache:
sudo dnf install python3-certbot-apache
SSL diegimas Nginx su Certbot
Prieš paleisdami Certbot, įsitikinkite, kad jūsų Nginx konfigūracijoje yra teisingas server_name direktyva:
server {
listen 80;
server_name jusudomenas.lt www.jusudomenas.lt;
root /var/www/jusudomenas.lt/html;
}
Tada paleiskite Certbot:
sudo certbot --nginx -d jusudomenas.lt -d www.jusudomenas.lt
Certbot automatiškai:
- Susisieks su Let’s Encrypt serveriu
- Patvirtins domeno nuosavybę
- Gaus sertifikatą
- Sukonfigūruos Nginx SSL blokus
- Nustatys HTTP → HTTPS peradresavimą (jei pasirinksite)
Po sėkmingo diegimo Certbot parodys sertifikato failų vietas:
Certificate: /etc/letsencrypt/live/jusudomenas.lt/fullchain.pem
Key: /etc/letsencrypt/live/jusudomenas.lt/privkey.pem
SSL diegimas Apache su Certbot
Įsitikinkite, kad Apache konfigūracijoje yra teisingas ServerName:
<VirtualHost *:80>
ServerName jusudomenas.lt
ServerAlias www.jusudomenas.lt
DocumentRoot /var/www/jusudomenas.lt/html
</VirtualHost>
Paleiskite Certbot:
sudo certbot --apache -d jusudomenas.lt -d www.jusudomenas.lt
Certbot sukurs SSL VirtualHost konfigūraciją, įdiegs sertifikatą ir pasiūlys nustatyti peradresavimą.
Automatinio atnaujinimo nustatymas
Let’s Encrypt sertifikatai galioja 90 dienų. Certbot automatiškai sukuria cron užduotį arba systemd laikmatį atnaujinimui. Patikrinkite, ar automatinis atnaujinimas veikia:
# Patikrinkite systemd laikmatį
sudo systemctl status certbot.timer
# Arba paleiskite bandomąjį atnaujinimą
sudo certbot renew --dry-run
Jei bandomasis atnaujinimas sėkmingas, sertifikatas bus automatiškai atnaujinamas maždaug 30 dienų prieš galiojimo pabaigą.
Patarimas: Jei naudojate Nginx, po atnaujinimo reikia perkrauti serverį. Pridėkite --deploy-hook parametrą:
sudo certbot renew --deploy-hook "systemctl reload nginx"
Šį parametrą galite pridėti prie atnaujinimo konfigūracijos failo /etc/letsencrypt/renewal/jusudomenas.lt.conf:
[renewalparams]
deploy_hook = systemctl reload nginx
Wildcard SSL diegimas su Certbot
Wildcard sertifikatas (*.jusudomenas.lt) apsaugo visus pirmo lygio subdomenus. Let’s Encrypt reikalauja DNS validacijos Wildcard sertifikatams.
Rankinis būdas:
sudo certbot certonly --manual --preferred-challenges dns \
-d jusudomenas.lt -d "*.jusudomenas.lt"
Certbot paprašys sukurti DNS TXT įrašą _acme-challenge.jusudomenas.lt su konkrečia reikšme. Sukūrę įrašą savo DNS valdymo pulte, palaukite keletą minučių (DNS propagacija) ir patvirtinkite Certbot.
Automatizuotas būdas su DNS tiekėjo įskiepiu:
Jei jūsų DNS tvarkomas Cloudflare, DigitalOcean, Route53 ar kitu palaikomu tiekėju, galite automatizuoti procesą:
# Cloudflare pavyzdys
sudo apt install python3-certbot-dns-cloudflare
# Sukurkite Cloudflare API kredencialų failą
sudo mkdir -p /etc/letsencrypt
sudo nano /etc/letsencrypt/cloudflare.ini
Failo turinys:
dns_cloudflare_api_token = jusu_cloudflare_api_token
Nustatykite failo teises ir paleiskite Certbot:
sudo chmod 600 /etc/letsencrypt/cloudflare.ini
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d jusudomenas.lt -d "*.jusudomenas.lt"
Šis būdas leidžia automatiškai atnaujinti Wildcard sertifikatą be rankinio įsikišimo.
Mokamo SSL sertifikato diegimas rankiniu būdu
Jei įsigijote mokamą sertifikatą iš DigiCert, Sectigo, GlobalSign ar kito tiekėjo, diegimo procesas yra rankinis.
Failų paruošimas
Po sertifikato išdavimo gausite šiuos failus (vardai gali skirtis):
jusudomenas.lt.crt, jūsų domeno sertifikatasca-bundle.crtarbaintermediate.crt, tarpinių sertifikatų grandinėjusudomenas.lt.key, privatus raktas (sugeneruotas CSR kūrimo metu, jūsų serveryje)
Kai kurie tiekėjai siunčia visus tarpinius sertifikatus atskiruose failuose. Tokiu atveju juos reikia sujungti į vieną failą:
cat intermediate1.crt intermediate2.crt root.crt > ca-bundle.crt
Svarbi taisyklė: Grandinės failai turi eiti tinkama tvarka, nuo arčiausiai jūsų sertifikato esančio tarpinio iki šakninio (root). Jei tvarka neteisinga, kai kurios naršyklės ar įrenginiai gali nerodyti spynelės.
SSL diegimas Nginx (rankinis)
Pirmiausia sukurkite pilną sertifikatų grandinės failą, kuriame bus ir jūsų domeno sertifikatas, ir tarpiniai sertifikatai:
cat jusudomenas.lt.crt ca-bundle.crt > jusudomenas.lt.fullchain.crt
Perkelkite failus į saugias vietas:
sudo mkdir -p /etc/ssl/certs /etc/ssl/private
sudo cp jusudomenas.lt.fullchain.crt /etc/ssl/certs/
sudo cp jusudomenas.lt.key /etc/ssl/private/
sudo chmod 600 /etc/ssl/private/jusudomenas.lt.key
Sukurkite arba redaguokite Nginx SSL konfigūraciją:
server {
listen 443 ssl http2;
server_name jusudomenas.lt www.jusudomenas.lt;
root /var/www/jusudomenas.lt/html;
ssl_certificate /etc/ssl/certs/jusudomenas.lt.fullchain.crt;
ssl_certificate_key /etc/ssl/private/jusudomenas.lt.key;
# Rekomenduojami SSL parametrai
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# HSTS (HTTP Strict Transport Security)
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/certs/jusudomenas.lt.fullchain.crt;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Jūsų svetainės konfigūracija
location / {
try_files $uri $uri/ =404;
}
}
# HTTP peradresavimas į HTTPS
server {
listen 80;
server_name jusudomenas.lt www.jusudomenas.lt;
return 301 https://$host$request_uri;
}
Patikrinkite konfigūraciją ir perkraukite Nginx:
sudo nginx -t
sudo systemctl reload nginx
Jei nginx -t rodo klaidas, pataisykite konfigūraciją prieš perkraunant. Niekada neperkraukite Nginx su klaidinga konfigūracija, nes serveris gali nepasikelti.
SSL diegimas Apache (rankinis)
Pirmiausia įjunkite SSL modulį (jei dar neįjungtas):
sudo a2enmod ssl
sudo a2enmod headers
sudo systemctl restart apache2
Perkelkite sertifikato failus:
sudo cp jusudomenas.lt.crt /etc/ssl/certs/
sudo cp ca-bundle.crt /etc/ssl/certs/
sudo cp jusudomenas.lt.key /etc/ssl/private/
sudo chmod 600 /etc/ssl/private/jusudomenas.lt.key
Sukurkite SSL VirtualHost konfigūraciją:
<VirtualHost *:443>
ServerName jusudomenas.lt
ServerAlias www.jusudomenas.lt
DocumentRoot /var/www/jusudomenas.lt/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/jusudomenas.lt.crt
SSLCertificateKeyFile /etc/ssl/private/jusudomenas.lt.key
SSLCertificateChainFile /etc/ssl/certs/ca-bundle.crt
# Rekomenduojami SSL parametrai
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
# HSTS
Header always set Strict-Transport-Security "max-age=63072000"
# Jūsų svetainės konfigūracija
<Directory /var/www/jusudomenas.lt/html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# HTTP peradresavimas
<VirtualHost *:80>
ServerName jusudomenas.lt
ServerAlias www.jusudomenas.lt
Redirect permanent / https://jusudomenas.lt/
</VirtualHost>
Įjunkite svetainę ir patikrinkite konfigūraciją:
sudo a2ensite jusudomenas.lt-ssl.conf
sudo apachectl configtest
sudo systemctl reload apache2
SSL diegimas LiteSpeed
LiteSpeed žiniatinklio serveris yra populiarus tarp prieglobos tiekėjų dėl savo greičio. SSL diegimas LiteSpeed atliekamas per WebAdmin Console:
- Prisijunkite prie LiteSpeed WebAdmin (paprastai
https://serverio-ip:7080). - Eikite į Listeners → SSL skiltį.
- Nurodykite sertifikato ir privataus rakto failus.
- Pridėkite CA Bundle failą lauke „CA Certificate Path”.
- Nustatykite SSL Protocol Version: TLSv1.2 ir TLSv1.3.
- Išsaugokite ir atlikite „Graceful Restart”.
Jei LiteSpeed veikia su cPanel (kaip Apache pakaitalas), SSL konfigūracija atliekama per cPanel, o LiteSpeed automatiškai perima Apache SSL nustatymus.
SSL diegimas per valdymo pultus
cPanel SSL diegimas
cPanel yra populiariausias prieglobos valdymo pultas. SSL diegimas per cPanel yra paprastas procesas, nereikalaujantis komandinės eilutės žinių.
Let’s Encrypt / AutoSSL (automatinis):
Daugelis cPanel prieglobos tiekėjų turi aktyvuotą AutoSSL funkciją, kuri automatiškai diegia ir atnaujina Let’s Encrypt arba Sectigo DV sertifikatus.
- Prisijunkite prie cPanel.
- Eikite į Security → SSL/TLS Status.
- Patikrinkite, ar jūsų domenas turi aktyvų sertifikatą.
- Jei sertifikato nėra, spauskite Run AutoSSL.
- Palaukite kelias minutes, kol procesas užsibaigs.
Mokamo sertifikato diegimas per cPanel:
- Prisijunkite prie cPanel.
- Eikite į Security → SSL/TLS.
- Skiltyje Private Keys įkelkite arba įklijuokite privatų raktą (.key failą).
- Skiltyje Certificates įkelkite arba įklijuokite sertifikatą (.crt failą).
- Spauskite Install and Manage SSL for your sites (HTTPS).
- Pasirinkite domeną iš sąrašo.
- Spauskite Autofill by Domain, jei sertifikatas jau įkeltas. Jei ne, įklijuokite sertifikatą, privatų raktą ir CA Bundle rankiniu būdu.
- Spauskite Install Certificate.
CSR generavimas per cPanel:
Jei dar neturite CSR, galite jį sugeneruoti cPanel aplinkoje:
- Eikite į Security → SSL/TLS → Certificate Signing Requests (CSR).
- Užpildykite formą (domenas, organizacija, miestas, šalis).
- Spauskite Generate.
- Nukopijuokite sugeneruotą CSR tekstą ir naudokite jį sertifikato užsakymui.
Plesk SSL diegimas
Plesk yra antras pagal populiarumą prieglobos valdymo pultas, dažniau naudojamas Windows serveriuose.
Let’s Encrypt per Plesk:
- Prisijunkite prie Plesk.
- Eikite į Websites & Domains → jūsų domenas.
- Spauskite SSL/TLS Certificates.
- Pasirinkite Install a free basic certificate provided by Let’s Encrypt.
- Pažymėkite domenus ir subdomenus, kuriuos norite apsaugoti.
- Pažymėkite Include a wildcard domain, jei reikia Wildcard sertifikato.
- Spauskite Get it free.
Mokamo sertifikato diegimas per Plesk:
- Eikite į Websites & Domains → SSL/TLS Certificates.
- Spauskite Add SSL/TLS Certificate.
- Įveskite sertifikato pavadinimą (identifikavimui).
- Įkelkite sertifikato failą (.crt), privatų raktą (.key) ir CA Bundle (.ca-bundle arba .crt).
- Spauskite Upload Certificate.
- Grįžkite į Hosting Settings ir lauke SSL/TLS Certificate pasirinkite ką tik įkeltą sertifikatą.
- Pažymėkite SSL/TLS support ir Permanent SEO-safe 301 redirect from HTTP to HTTPS.
- Spauskite OK.
DirectAdmin SSL diegimas
DirectAdmin yra lengvesnis valdymo pultas, populiarus tarp mažesnių prieglobos tiekėjų.
- Prisijunkite prie DirectAdmin.
- Eikite į Account Manager → SSL Certificates.
- Pasirinkite vieną iš variantų:
- Free & automatic certificate from Let’s Encrypt , automatinis diegimas
- Paste a pre-generated certificate and key , rankiniam mokamo sertifikato diegimui
- Let’s Encrypt atveju tiesiog pasirinkite domeną ir spauskite Save.
- Mokamo sertifikato atveju įklijuokite sertifikatą, privatų raktą ir CA Bundle, tada spauskite Save.
SSL diegimas WordPress svetainėje
WordPress SSL diegimas susideda iš dviejų dalių: paties sertifikato diegimo serveryje (aprašyta aukščiau) ir WordPress konfigūracijos atnaujinimo.
WordPress adresų pakeitimas
Po SSL sertifikato diegimo serveryje:
- Prisijunkite prie WordPress administravimo skydelio.
- Eikite į Nustatymai → Bendra (Settings → General).
- Pakeiskite abu adresus:
- WordPress adresas (URL):
https://jusudomenas.lt - Svetainės adresas (URL):
https://jusudomenas.lt
- Spauskite Išsaugoti pakeitimus.
Dėmesio: Prieš keisdami šiuos adresus, įsitikinkite, kad SSL sertifikatas jau veikia. Priešingu atveju galite prarasti prieigą prie administravimo skydelio.
Jei praradote prieigą prie WordPress po URL pakeitimo
Jei sertifikatas dar neveikia ir pakeitėte URL į HTTPS, galite ištaisyti situaciją per wp-config.php failą:
define('WP_HOME', 'http://jusudomenas.lt');
define('WP_SITEURL', 'http://jusudomenas.lt');
Arba per duomenų bazę:
UPDATE wp_options SET option_value = 'http://jusudomenas.lt'
WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://jusudomenas.lt'
WHERE option_name = 'home';
HTTP → HTTPS peradresavimas WordPress svetainėje
Pridėkite šį kodą prie .htaccess failo (Apache serveryje):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Mixed Content klaidų taisymas WordPress svetainėje
Po perėjimo prie HTTPS dažnai pasitaiko mišraus turinio (mixed content) klaidų. Tai atsitinka, kai HTTPS puslapyje kraunami resursai (paveikslėliai, CSS, JavaScript) per HTTP.
1 būdas: Really Simple SSL įskiepis
Įdiekite ir aktyvuokite „Really Simple SSL” įskiepį. Jis automatiškai:
- Nustatys peradresavimą iš HTTP į HTTPS
- Ištaisys vidines nuorodas
- Išspręs daugumą mixed content klaidų
2 būdas: Better Search Replace įskiepis (rekomenduojama ilgalaikiam sprendimui)
Šis metodas pakeičia visas HTTP nuorodas duomenų bazėje į HTTPS:
- Įdiekite „Better Search Replace” įskiepį.
- Eikite į Įrankiai → Better Search Replace.
- Lauke „Search for” įrašykite:
http://jusudomenas.lt - Lauke „Replace with” įrašykite:
https://jusudomenas.lt - Pasirinkite visas duomenų bazės lenteles.
- Pirmiausia paleiskite su „Dry Run” pažymėtu (bandomasis paleidimas), kad pamatytumėte, kiek pakeitimų bus atlikta.
- Jei rezultatas atrodo teisingas, paleiskite tikrą pakeitimą (nuimkite „Dry Run” varnelę).
3 būdas: WP-CLI (komandinė eilutė)
Jei turite SSH prieigą:
wp search-replace 'http://jusudomenas.lt' 'https://jusudomenas.lt' \
--all-tables --precise --dry-run
# Jei dry-run rezultatai teisingi, paleiskite be --dry-run
wp search-replace 'http://jusudomenas.lt' 'https://jusudomenas.lt' \
--all-tables --precise
WordPress temos ir įskiepių patikrinimas
Po duomenų bazės atnaujinimo patikrinkite:
- Temos failus: Ar nėra užkoduotų (
hardcoded) HTTP nuorodų header.php, footer.php ar kituose temos failuose. - Customizer nustatymus: Logo, favicon ir kiti paveikslėliai gali turėti senus HTTP URL.
- Įskiepių nustatymus: Kai kurie įskiepiai (ypač Google Analytics, reklaminiai kodai) gali turėti atskirus URL laukus, kuriuos reikia atnaujinti rankiniu būdu.
- CDN konfigūraciją: Jei naudojate CDN (Cloudflare, BunnyCDN, KeyCDN), įsitikinkite, kad CDN URL naudoja HTTPS.
SSL diegimas debesų platformose
AWS (Amazon Web Services)
AWS aplinkoje SSL sertifikatus galima valdyti per ACM (AWS Certificate Manager):
- Eikite į AWS Certificate Manager konsolę.
- Spauskite Request a certificate.
- Pasirinkite Public certificate.
- Įveskite domeno vardą (galite pridėti Wildcard ir papildomus domenus).
- Pasirinkite validacijos metodą: DNS arba el. paštas.
- DNS validacijos atveju pridėkite CNAME įrašą prie savo domeno DNS.
- Kai sertifikatas patvirtintas, priskirkite jį savo paslaugai:
- Elastic Load Balancer (ALB/NLB): Listener konfigūracijoje pasirinkite ACM sertifikatą.
- CloudFront: Distribution nustatymuose pasirinkite ACM sertifikatą (turi būti us-east-1 regione).
- API Gateway: Custom Domain konfigūracijoje.
ACM sertifikatai yra nemokami ir automatiškai atnaujinami. Tai pats paprasčiausias būdas valdyti SSL AWS ekosistemoje.
Google Cloud Platform
Google Cloud siūlo „Google-managed SSL certificates”:
- Eikite į Network services → Load balancing.
- Sukurkite arba redaguokite Load Balancer.
- Frontend konfigūracijoje pasirinkite HTTPS protokolą.
- Skiltyje Certificate pasirinkite Create a new certificate.
- Pasirinkite Create Google-managed certificate.
- Įveskite domeno vardą.
- Google automatiškai gaus ir diegs sertifikatą.
DigitalOcean
DigitalOcean siūlo Let’s Encrypt integraciją per Load Balancer:
- Sukurkite arba redaguokite Load Balancer.
- Pridėkite HTTPS forwarding rule.
- Pasirinkite Let’s Encrypt Certificate.
- Įveskite domeno vardą.
- Sertifikatas bus automatiškai gautas ir atnaujinamas.
Pažangūs SSL konfigūracijos parametrai
HSTS (HTTP Strict Transport Security)
HSTS antraštė nurodo naršyklei visada naudoti HTTPS ryšį su jūsų svetaine. Tai apsaugo nuo SSL stripping atakų.
Nginx:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
Apache:
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Parametrų reikšmės:
max-age=63072000, 2 metai sekundėmis (rekomenduojamas terminas)includeSubDomains, HSTS taikomas ir visiems subdomenamspreload, leidžia įtraukti svetainę į naršyklių HSTS preload sąrašą
Svarbu: Prieš pridedant includeSubDomains parametrą, įsitikinkite, kad VISI jūsų subdomenai turi veikiančius SSL sertifikatus. Priešingu atveju subdomenai taps nepasiekiami.
OCSP Stapling
OCSP Stapling pagreitina SSL handshake procesą, nes serveris pats patikrina sertifikato galiojimo būseną ir pateikia rezultatą naršyklei, vietoj to, kad naršyklė kreiptųsi į CA serverį.
Nginx:
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/certs/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
Apache:
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
SSLStaplingResponseMaxAge 900
TLS sesijos talpykla (Session Cache)
Sesijos talpykla leidžia pakartotiniams lankytojams užmegzti šifruotą ryšį greičiau, nes nereikia kartoti pilno SSL handshake proceso.
Nginx:
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
ssl_session_tickets off;
Apache:
SSLSessionCache "shmcb:logs/ssl_session_cache(512000)"
SSLSessionCacheTimeout 86400
Saugumo antraštės (papildomi apsaugos sluoksniai)
Kartu su SSL rekomenduojama pridėti šias HTTP saugumo antraštes:
# Nginx
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
SSL sertifikato testavimas ir tikrinimas
Po diegimo būtina patikrinti, ar sertifikatas įdiegtas teisingai. Štai patikrinimo kontrolinis sąrašas.
Internetiniai tikrinimo įrankiai
SSL Labs Server Test (ssllabs.com/ssltest)
Tai išsamiausias nemokamas SSL tikrinimo įrankis. Jis patikrina:
- Sertifikato galiojimą ir grandinės teisingumą
- Palaikomus protokolus ir šifravimo algoritmus
- Pažeidžiamumus (POODLE, Heartbleed, BEAST ir kitus)
- HSTS konfigūraciją
- OCSP Stapling veikimą
- Bendrą įvertinimą nuo A+ iki F
Siekite A+ įvertinimo. A+ gaunamas, kai sertifikatas ir konfigūracija yra teisingi bei aktyvuotas HSTS.
SSL Checker (sslshopper.com/ssl-checker.html)
Greitas patikrinimas, ar sertifikatų grandinė yra pilna ir teisinga. Ypač naudingas, kai reikia greitai identifikuoti trūkstamą tarpinį sertifikatą.
Why No Padlock (whynopadlock.com)
Tikrina konkrečius puslapius dėl mixed content klaidų. Naudinga, kai naršyklė nerodo spynelės, bet nežinote, kuris resursas kelia problemą.
Komandinės eilutės tikrinimas
# Patikrinkite sertifikato informaciją
openssl s_client -connect jusudomenas.lt:443 -servername jusudomenas.lt
# Patikrinkite sertifikato galiojimo datas
echo | openssl s_client -servername jusudomenas.lt \
-connect jusudomenas.lt:443 2>/dev/null | \
openssl x509 -noout -dates
# Patikrinkite sertifikatų grandinę
openssl s_client -connect jusudomenas.lt:443 \
-servername jusudomenas.lt -showcerts
# Patikrinkite, ar privatus raktas atitinka sertifikatą
openssl x509 -noout -modulus -in sertifikatas.crt | openssl md5
openssl rsa -noout -modulus -in privatusraktas.key | openssl md5
# Abu MD5 hash'ai turi sutapti
Naršyklės tikrinimas
- Atidarykite svetainę Chrome arba Firefox naršyklėje.
- Spauskite ant spynelės piktogramos adresų juostoje.
- Pasirinkite „Certificate” arba „Connection is secure”.
- Patikrinkite:
- Sertifikato galiojimo datas
- Kam išduotas sertifikatas (domeno vardas)
- Kas išdavė sertifikatą (CA)
- Sertifikatų grandinę (turi būti pilna)
- Atidarykite DevTools (F12) → Console, ir ieškokite mixed content įspėjimų.
- Atidarykite DevTools → Security tab, ir patikrinkite bendrą saugumo būseną.
Dažniausios SSL diegimo klaidos ir jų sprendimai
ERR_SSL_PROTOCOL_ERROR
Priežastis: Serveris nesiklauso 443 porto arba SSL modulis neaktyvuotas.
Sprendimas:
# Apache: aktyvuokite SSL modulį
sudo a2enmod ssl
sudo systemctl restart apache2
# Nginx: patikrinkite, ar listen 443 ssl yra konfigūracijoje
# Patikrinkite, ar 443 portas atidarytas
sudo ufw allow 443
sudo netstat -tlnp | grep 443
ERR_CERT_AUTHORITY_INVALID
Priežastis: Trūksta tarpinių sertifikatų (CA Bundle). Naršyklė negali patvirtinti sertifikato grandinės.
Sprendimas:
- Atsisiųskite CA Bundle iš savo sertifikato tiekėjo svetainės.
- Nginx: sujunkite sertifikatą su CA Bundle į vieną
fullchain.pemfailą. - Apache: pridėkite
SSLCertificateChainFiledirektyvą. - Patikrinkite su SSL Checker, ar grandinė pilna.
ERR_CERT_COMMON_NAME_INVALID
Priežastis: Sertifikate nurodytas domeno vardas nesutampa su svetainės adresu.
Sprendimas:
- Patikrinkite, ar sertifikatas išduotas būtent tam domenui, kurį naudojate.
- Jei naudojate
www.jusudomenas.lt, bet sertifikatas išduotas tikjusudomenas.lt(arba atvirkščiai), reikia naujo sertifikato su abiem variantais. - Wildcard sertifikatas
*.jusudomenas.ltapima subdomenus, bet ne patįjusudomenas.lt. Reikia, kad sertifikate būtų abu:*.jusudomenas.ltirjusudomenas.lt.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Priežastis: Serveris ir naršyklė neturi bendro palaikomo TLS protokolo ar šifravimo algoritmo.
Sprendimas:
# Nginx: naudokite šiuolaikinius protokolus
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
NET::ERR_CERT_DATE_INVALID
Priežastis: Sertifikatas pasibaigęs arba jo galiojimo laikotarpis dar neprasidėjęs.
Sprendimas:
- Patikrinkite sertifikato datas:
openssl x509 -noout -dates -in sertifikatas.crt - Jei pasibaigęs, atnaujinkite sertifikatą.
- Jei datos atrodo teisingos, patikrinkite serverio laikrodį:
date. Neteisingas serverio laikas gali sukelti šią klaidą. - Sinchronizuokite laiką:
sudo ntpdate pool.ntp.orgarbasudo timedatectl set-ntp true
Mixed Content klaidos (spynelė su įspėjimu)
Priežastis: HTTPS puslapyje kraunami resursai per HTTP.
Diagnozavimas:
- Atidarykite naršyklės konsolę (F12 → Console).
- Ieškokite „Mixed Content” pranešimų. Jie nurodys tikslų resurso URL.
Sprendimas pagal resurso tipą:
- Vidiniai paveikslėliai: Pakeiskite URL duomenų bazėje (WordPress: Better Search Replace).
- Išoriniai skriptai: Pakeiskite
http://įhttps://arba//(protokolo santykinis URL). - Trečiųjų šalių widgetai: Patikrinkite, ar tiekėjas palaiko HTTPS. Jei ne, ieškokite alternatyvos.
- CSS
@importarurl()reikšmės: Patikrinkite stilių failus.
Peradresavimo kilpa (ERR_TOO_MANY_REDIRECTS)
Priežastis: Serveris nukreipia iš HTTP į HTTPS, o HTTPS nukreipia atgal į HTTP (arba atvirkščiai).
Dažniausios priežastys:
- Cloudflare „Flexible” SSL režimas + serverio HTTPS peradresavimas
- Dvigubas peradresavimas (.htaccess + WordPress įskiepis)
- Reverse proxy prieš serverį, kuris neperduoda HTTPS antraštės
Sprendimas:
# .htaccess: patikrinkite, ar nėra dvigubo peradresavimo
# Jei naudojate Cloudflare:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
WordPress wp-config.php su reverse proxy:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
Privatus raktas nesutampa su sertifikatu
Priežastis: CSR buvo sugeneruotas su vienu raktu, bet serveryje naudojamas kitas.
Diagnozavimas:
# Palyginkite modulus hash'us
openssl x509 -noout -modulus -in sertifikatas.crt | openssl md5
openssl rsa -noout -modulus -in privatusraktas.key | openssl md5
openssl req -noout -modulus -in uzklausa.csr | openssl md5
# Visi trys turi rodyti identišką MD5 reikšmę
Sprendimas: Jei hash’ai nesutampa, turite sugeneruoti naują CSR su nauju privačiu raktu ir pergeneruoti sertifikatą pas tiekėją (dauguma siūlo nemokamą pergeneravimą galiojimo laikotarpiu).
SSL sertifikato atnaujinimas ir priežiūra
Atnaujinimo kontrolinis sąrašas
- 30 dienų prieš galiojimo pabaigą: Patikrinkite, ar automatinis atnaujinimas veikia. Jei naudojate mokamą sertifikatą, pradėkite atnaujinimo procesą.
- 14 dienų prieš: Jei automatinis atnaujinimas nepavyko, atnaujinkite rankiniu būdu.
- 7 dienos prieš: Galutinis patikrinimas. Jei sertifikatas vis dar neatnaujintas, skubiai spręskite problemą.
- Po atnaujinimo: Patikrinkite svetainę su SSL Labs ir naršyklėje.
Sertifikato galiojimo stebėjimas
Nustatykite automatinį stebėjimą, kad niekada nepraleistumėte sertifikato galiojimo pabaigos:
Bash skriptas el. pašto pranešimui:
#!/bin/bash
DOMAIN="jusudomenas.lt"
DAYS_BEFORE=30
EMAIL="admin@jusudomenas.lt"
EXPIRY=$(echo | openssl s_client -servername $DOMAIN \
-connect $DOMAIN:443 2>/dev/null | \
openssl x509 -noout -enddate | cut -d= -f2)
EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s)
NOW_EPOCH=$(date +%s)
DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 ))
if [ $DAYS_LEFT -le $DAYS_BEFORE ]; then
echo "SSL sertifikatas $DOMAIN baigiasi po $DAYS_LEFT dienu ($EXPIRY)" | \
mail -s "SSL sertifikato ispejimas: $DOMAIN" $EMAIL
fi
Pridėkite šį skriptą prie cron, kad būtų paleidžiamas kasdien:
0 9 * * * /usr/local/bin/check-ssl-expiry.sh
Kelių sertifikatų valdymas
Jei valdote daugiau nei 5-10 sertifikatus, verta naudoti centralizuotą valdymo įrankį:
- Certbot su keliais domenais viename serveryje
- cert-manager (Kubernetes aplinkoje)
- Traefik (automatinis Let’s Encrypt sertifikatų valdymas konteineriuose)
- DigiCert CertCentral arba Sectigo Certificate Manager (mokamų sertifikatų portfeliui)
Dažnai užduodami klausimai
Ar galiu įdiegti SSL sertifikatą be root prieigos?
Bendrinamoje priegloboje (shared hosting) su cPanel ar Plesk, taip, nereikia root prieigos. Valdymo pultas suteikia visas reikiamas funkcijas. VPS ar dedikuotame serveryje dažniausiai reikės sudo teisių SSL failams tvarkyti ir žiniatinklio serveriui konfigūruoti.
Kiek laiko trunka SSL diegimas?
DV sertifikato (Let’s Encrypt ar mokamo) diegimas trunka 5-15 minučių, jei viskas paruošta. OV sertifikato diegimas priklauso nuo validacijos proceso, kuris gali užtrukti 1-3 darbo dienas. EV sertifikato validacija gali trukti 3-7 darbo dienas ar ilgiau. Pats diegimo veiksmas serveryje visada trunka tik kelias minutes.
Ar po SSL diegimo prarasiu SEO pozicijas?
Trumpalaikis pozicijų svyravimas yra galimas, nes Google perindeksuoja svetainę. Tačiau ilgalaikis poveikis yra teigiamas, nes HTTPS yra reitingavimo signalas. Svarbiausia: nustatykite teisingą 301 peradresavimą iš HTTP į HTTPS ir atnaujinkite Google Search Console bei sitemap.xml.
Ar galiu naudoti vieną sertifikatą keliuose serveriuose?
Taip. Galite nukopijuoti sertifikato ir privataus rakto failus į kelis serverius. Tačiau privataus rakto saugumas tampa didesniu iššūkiu, nes kiekvienas serveris, turintis privatų raktą, yra potencialus pažeidžiamumo taškas. Debesų aplinkose rekomenduojama naudoti centralizuotą sertifikatų valdymą (AWS ACM, Load Balancer SSL termination).
Ką daryti, jei praradau privatų raktą?
Jei privatus raktas prarastas, sertifikatas tampa bevertis, nes negalite jo įdiegti be rakto. Turėsite pergeneruoti naują CSR su nauju privačiu raktu ir prašyti sertifikato tiekėjo pergeneruoti (reissue) sertifikatą. Dauguma mokamų tiekėjų leidžia tai padaryti nemokamai sertifikato galiojimo laikotarpiu. Let’s Encrypt atveju tiesiog gaukite naują sertifikatą per Certbot.
Ar SSL diegimas paveikia svetainės greitį?
Šiuolaikiniuose serveriuose SSL/TLS šifravimo poveikis yra minimalus (1-5 ms prie kiekvieno ryšio užmezgimo). HTTP/2 protokolas, kuris veikia tik per HTTPS, iš tikrųjų pagreitina svetainės veikimą, nes leidžia multipleksuoti kelias užklausas vienu TCP ryšiu. Teisingai sukonfigūruota HTTPS svetainė dažnai veikia greičiau nei HTTP versija.
Ar turiu diegti SSL sertifikatą kiekvienam subdomenui atskirai?
Priklauso nuo sertifikato tipo. Vieno domeno sertifikatas apsaugo tik vieną domeną. Wildcard sertifikatas (*.jusudomenas.lt) apsaugo visus pirmo lygio subdomenus vienu sertifikatu. Multi-Domain (SAN) sertifikatas leidžia nurodyti konkrečius domenus ir subdomenus. Let’s Encrypt leidžia įtraukti iki 100 domenų/subdomenų viename sertifikate naudojant -d parametrą.
Apibendrinimas
SSL sertifikato diegimas yra vienkartinis procesas, kuris apsaugo jūsų svetainę ir lankytojus kiekvieną dieną. Nors žingsnių skaičius gali atrodyti didelis, dauguma šiuolaikinių prieglobos platformų supaprastino diegimą iki kelių paspaudimų.
Greitas veiksmų planas pagal jūsų situaciją:
- cPanel / Plesk priegloba: Aktyvuokite AutoSSL arba Let’s Encrypt per valdymo pultą (5 min.)
- VPS su Nginx arba Apache: Įdiekite Certbot, paleiskite vieną komandą, nustatykite automatinį atnaujinimą (15 min.)
- WordPress svetainė: Įdiekite SSL serveryje, pakeiskite URL, ištaisykite mixed content klaidas (20-30 min.)
- AWS / Google Cloud: Naudokite platformos integruotą SSL valdymą (ACM, Google-managed certificates) (10 min.)
- Mokamas sertifikatas: Sugeneruokite CSR, atlikite validaciją, įdiekite sertifikatą su CA Bundle, konfigūruokite serverį (30-60 min. + validacijos laikas)
Po diegimo visada atlikite tris patikrinimus: SSL Labs testas (siekite A+ įvertinimo), naršyklės spynelės patikrinimas ir mixed content klaidų paieška per DevTools konsolę. Nustatykite galiojimo stebėjimą, ir galėsite pamiršti apie SSL, kol viskas veikia sklandžiai fone.
