Použitie certifikátov s RSA aj ECDSA kľúčom súčasne
Chceli by ste zákazníkom sprístupniť moderné a rýchle šifrovanie pomocou EC kľúča, ale stále sa bojíte o kompatibilitu starších prehliadačov? Už nemusíte. Na webový server môžete nastaviť dva certifikáty vedľa seba a RSA bude slúžiť ako fallback. V tomto návode sa dozviete, ako použiť dva certifikáty s RSA aj EC kľúčom spoločne na jednej doméne.
Webové servery už toto vedia dlhšiu dobu; ak teda váhate, či je pravý okamih prejsť na ECC certifikát kvôli kompatibilite návštevníkov, môžete nastaviť oba. Moderné prehliadače použitie EC kľúča podporujú a ich komunikácia so serverom bude rýchlejšia. Tie prehliadače, ktoré kryptografiu eliptických kriviek (ECC) použiť nevedia, budú mať k dispozícii klasický RSA certifikát ako tzv. fallback.
Princíp fungovania dvoch certifikátov na webserveri
Fungovanie dvoch certifikátov s rôznym algoritmom vedľa seba je jednoduché. Jednoducho do konfigurácie webového servera doplníte druhý certifikát a necháte na ňom, ktorý potom použije.
K dispozícii budú dva certifikáty, každý s iným algoritmom kľúča, a ich použitie určí zoznam šifier zoradených podľa preferencie (a samozrejme preferencie prehliadača, ktorý sa pripája). Preferovaný bude ECC certifikát, ktorý obsahuje kratší kľúč a ktorého kryptografia je silnejšia ako RSA.
Poradie certifikátov sa určuje podľa preferencie šifrovacích algoritmov, ktoré nastavujete pre danú doménu na webserveri. V zozname preferovaných (aj zakázaných) šifier sú šifry zoradené podľa priorít tak, aby server skúšal tie skôr uvedené pred tými neskôr uvedenými.
Fallback z ECC na RSA
Ak sa server s klientom nedohovorí na šifrách s EC kľúčom, tak prejde k nasledujúcim šifrám využívajúcim RSA, ktoré prehliadač určite podporuje. Je tak zaistený tzv. fallback na klasický RSA certifikát. Vďaka tomu je použitie duálnej konfigurácie bezpečné a nemusíte mať obavy, že sa na váš web nedostane zákazník so starým browserom.
Nastavenie preferencie šifier
Pri každom webovom serveri je potrebné definovať preferované šifry; na to odporúčame využiť službu moz://a SSL Configuration Generator alebo Cipherli.st. Získate tak zoznam vhodných šifier, ktorý odporúčajú odborníci na bezpečnosť, a nebudete ho musieť zložito vytvárať sami.
Ako získať duplikát certifikátu
V SSLmarkete štandardne získate jeden certifikát s algoritmom použitým v CSR. Ak chcete získať duplikát k existujúcemu certifikátu zadarmo (s iným algoritmom), neváhajte kontaktovať našu zákaznícku podporu. Na duálne použitie RSA a ECC nemusíte kupovať 2x rovnaký certifikát.
Apache
Do konfigurácie vhostu konkrétneho webu doplníte umiestnenie druhého páru certifikátu a privátneho kľúča. Tento druhý certifikát bude mať iný algoritmus kľúča ako prvý; predpokladáme, že dopĺňate ECC certifikát k existujúcemu RSA certifikátu.
Do konfigurácie iba doplníte druhý pár kľúčov. Ich použitie potom závisí od preferencie algoritmov v ciphersuites.
SSLCertificateFile /etc/ssl/certs/ssl-rsa.crt
SSLCertificateKeyFile /etc/ssl/private/pkey-rsa.pem
SSLCertificateFile /etc/ssl/certs/ssl-ecc.pem
SSLCertificateKeyFile /etc/ssl/private/pkey-ecc.pem
Ak máte v konfigurácii povolenú direktívu SSLCACertificateFile, tak ju pokojne zmažte či zakomentujte. Intermediate (CA certifikát) nie je nutné zvlášť uvádzať, pretože ho už máte v súbore so samotným certifikátom pre doménu.
Šifrovacie algoritmy využívajúce ECC by mali logicky byť v zozname vpredu s vyššou prioritou. Nastavenie protokolov a zoznamu šifier vykonáte v súbore ssl.conf (štandardne v priečinku /mods-enabled). Príklad prevzatý z ssl-config.mozilla.org:
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:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
Nginx
Nginx vie zároveň použiť RSA a ECC certifikát od verzie 1.11.0, ktorá vyšla v roku 2016. Nastavenie konfigurácie pre nginx má rovnakú logiku ako u Apache. Iba pridáte druhý certifikát do konfigurácie a necháte server rozhodnúť.
server {
listen 443 ssl default_server;
server_name domena.sk www.domena.sk;
# RSA certifikát
ssl_certificate /var/ssl/domena.sk/certs/fullchain.rsa.pem;
ssl_certificate_key /var/ssl/domena.sk/private/privkey.rsa.pem;
# ECDSA certifikát
ssl_certificate /var/ssl/domena.sk/certs/fullchain.ecc.pem;
ssl_certificate_key /var/ssl/domena.sk/private/privkey.ecc.pem;
# Other directives
}
Nastavenie protokolov a zoznamu šifier (prevzaté z ssl-config.mozilla.org):
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:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
Mrzí nás, že ste tu nenašli potrebné.
Pomôžete nám článok vylepšiť? Napíš nám, čo ste tu očakávali a nedozvedeli sa.