This shows you the differences between two versions of the page.
gsr:laboratoare:laborator-09 [2016/12/21 23:39] alexandru.carp [Comunicare client/server peste SSL/TLS] |
gsr:laboratoare:laborator-09 [2016/12/22 17:13] (current) alexandru.carp [Configurarea HTTPS pentru un server web] |
||
---|---|---|---|
Line 67: | Line 67: | ||
Pentru a putea valida certificatul serverului, avem nevoie de certificatul CA-ului care l-a semnat. | Pentru a putea valida certificatul serverului, avem nevoie de certificatul CA-ului care l-a semnat. | ||
- | Descarcati certificatul CA-ului ''ca.crt'' de [[http://swarm.cs.pub.ro/~carpalex/gsr/ssl/server.ixlabs.key|aici]] | + | Descarcati certificatul CA-ului ''ca.crt'' de [[http://swarm.cs.pub.ro/~carpalex/gsr/ssl/ca.crt|aici]] |
+ | Apoi, lansati din nou ''openssl s_client'', dar cu parametru ''-CAfile'': | ||
+ | <code> | ||
+ | $ openssl s_client -CAfile ca.crt -connect localhost:12345 | ||
+ | CONNECTED(00000003) | ||
+ | depth=1 C = RO, O = Ixia, OU = Development, CN = Ixia-CA | ||
+ | verify return:1 | ||
+ | depth=0 C = RO, ST = Some-State, O = Ixia, OU = Development, CN = server | ||
+ | verify return:1 | ||
+ | --- | ||
+ | Certificate chain | ||
+ | 0 s:/C=RO/ST=Some-State/O=Ixia/OU=Development/CN=server | ||
+ | i:/C=RO/O=Ixia/OU=Development/CN=Ixia-CA | ||
+ | --- | ||
+ | [...] | ||
+ | Verify return code: 0 (ok) | ||
+ | </code> | ||
+ | |||
+ | Observati ca de data aceasta certificatul este validat. | ||
+ | |||
+ | Similar cu ''nc'', textul introdus in client apare pe server, si invers. | ||
+ | |||
+ | Porniti wireshark sau tcpdump si observati conversatia TCP pe portul 12345. Observati ca datele sunt criptate in cadrul unei sesiuni SSL. | ||
===== Configurarea HTTPS pentru un server web ===== | ===== Configurarea HTTPS pentru un server web ===== | ||
- | Cu certificatul astfel obținut realizați o configurare a unui virtul host pe serverul Apache local (instalați-l dacă nu este instalat) cu suport HTTPS. | + | Folositi certificatul ''server.ixlabs'' pentru a realiza o configurare a unui virtual host pe serverul Apache local (instalați-l dacă nu este instalat) cu suport HTTPS. |
Pașii pe care trebuie să îi urmați sunt: | Pașii pe care trebuie să îi urmați sunt: | ||
- | * Crearea unui fișier de configurare pentru hostname-ul ''dorel.ixlabs'' (sau numele aferent domeniului vostru). | + | * Crearea unui fișier de configurare pentru hostname-ul ''server.ixlabs'' |
- | * Crearea unui fișier de configurare pentru hostname-ul ''dorel.ixlabs'' cu suport HTTPS. | + | * Crearea unui fișier de configurare pentru hostname-ul ''server.ixlabs'' cu suport HTTPS. |
* Activarea acestora folosind comanda ''a2ensite''. | * Activarea acestora folosind comanda ''a2ensite''. | ||
* Activarea suport-ului de TLS folosind comanda<code> | * Activarea suport-ului de TLS folosind comanda<code> | ||
Line 82: | Line 104: | ||
</code> | </code> | ||
* Copierea certificatului în directorul ''/etc/ssl/certs/'' și a cheii private în ''/etc/ssl/private/''. | * Copierea certificatului în directorul ''/etc/ssl/certs/'' și a cheii private în ''/etc/ssl/private/''. | ||
- | * Configuarea suportului de TLS în configurarea ''dorel.ixlabs'' cu suport HTTPS. Vedeți liniile de configurare de [[https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#configexample|aici]]. | + | * Configurarea suportului de TLS în configurarea ''server.ixlabs'' cu suport HTTPS. Vedeți liniile de configurare de [[https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html#configexample|aici]]. |
- | * Adăugarea unei intrări în ''/etc/hosts'' pentru numele ''dorel.ixlabs'' cu adresa locală (poate chiar adresa de loopback) ca să aveți rezolvat numele de domeniu. | + | * Adăugarea unei intrări în ''/etc/hosts'' pentru numele ''server'' cu adresa locală (poate chiar adresa de loopback) ca să aveți rezolvat numele de domeniu. |
+ | <note> | ||
+ | **Nota:** Trebuie facuta maparea cu ''server'' si nu cu ''server.ixlabs'' pentru ca browserul se asteapta ca domeniul din URL sa faca match cu CN-ul din certificat, iar acesta este ''server''. | ||
+ | </note> | ||
* Repornirea serverului web. | * Repornirea serverului web. | ||
* Încărcați în browser-ul certificatul CA-ului. | * Încărcați în browser-ul certificatul CA-ului. | ||
- | * Conectarea la serverul web folosind un URL de forma ''%%https://dorel.ixlabs%%'' pentru a valida configurarea corectă a serviciului. | + | * Conectarea la serverul web folosind un URL de forma ''%%https://server%%'' pentru a valida configurarea corectă a serviciului. |
===== Configurarea IMAPS pentru un server de IMAP ===== | ===== Configurarea IMAPS pentru un server de IMAP ===== | ||
Line 94: | Line 119: | ||
</code> | </code> | ||
- | Configurați pentru IMAPS certificatul verificat anterior și apoi folosiți un client de e-mail pentru vă conecta la server prin IMAPS. | + | Configurați pentru IMAPS certificatul ''server.ixlabs'' și apoi folosiți un client de e-mail pentru vă conecta la server prin IMAPS. |
Folosiți și ''openssl s_client'' pentru a verifica folosirea corespunzătoare a certificatului pe server. | Folosiți și ''openssl s_client'' pentru a verifica folosirea corespunzătoare a certificatului pe server. |