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 váhate, či je pravý okamih prejsť na EC certifikát, môžete nastaviť návštevníkom oba. Moderné prehliadače použitie EC kľúče 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 EC 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ýchr) šifie 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 ECC 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: -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.cz/certs/fullchain.rsa.pem;
ssl_certificate_key /var/ssl/domena.cz/private/privkey.rsa.pem;
# ECDSA certifikát
ssl_certificate /var/ssl/domena.cz/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;

Overenie správnosti inštalácie

Správnosť inštalácie SSL certifikátu si môžete skontrolovať v našom overovači. Pre viac informácií čítajte článok pomocníka Kontrola inštalácie certifikátu.

Zdroje a viac informácií


Pomoc s SSL certifikátmi

Je toho na vás veľa?

Napíšte nám
info@sslmarket.sk
Kontaktný formulár
Bol tento článok pre vás užitočný?