Requisits previs
Servei segur mitjançant HTTPS
Obteniu el certificat SSL/TLS
Configureu el vostre servidor web per utilitzar la clau privada i el certificat
Requisits previs
- Un servidor Vultr amb Arch Linux actualitzat (vegeu aquest article ).
- Un servidor web en funcionament, ja sigui Apache o Nginx
- Accés Sudo
- Les ordres que cal executar com a root tenen el prefix
#, i les que es poden executar com a usuari normal amb $. La manera recomanada d'executar ordres com a root és, com a usuari normal, posar-hi el prefix a cadascuna d'elles amb sudo.
- Teniu instal·lat un editor de text i familiaritzeu-lo, com ara vi, vim, nano, emacs o un altre editor similar.
Servei segur mitjançant HTTPS
La publicació de contingut mitjançant HTTPS pot utilitzar un xifratge extremadament fort, de manera que ningú que intercepti el trànsit entre l'usuari i el servidor web el pugui llegir. No només xifra el trànsit en si, sinó també l'URL a què s'accedeix, que d'altra manera pot exposar informació. Des de fa temps, Google ha estat determinant parcialment els rànquings de cerca en funció de si una pàgina utilitza HTTPS, com a part de la iniciativa HTTPS Everywhere.
Nota : una cerca de DNS exposa el nom de domini al qual s'està connectant, però l'URL complet no s'exposa durant aquest procés.
Obteniu el certificat SSL/TLS
Tècnicament, TLS va substituir SSL per certificats HTTPS, però la majoria de llocs simplement van continuar trucant certificats TLS pel terme més popular Certificats SSL. Seguint l'ús comú, aquesta guia farà el mateix.
Per utilitzar HTTPS, el vostre servidor web necessita una clau privada ( .key) per utilitzar-lo de manera privada i un certificat ( .crt) per compartir públicament que inclogui una clau pública. Cal signar un certificat. Podeu signar-lo vosaltres mateixos, però els navegadors moderns es queixaran que no reconeixen el signant. Per exemple, Chrome mostrarà: Your connection is not private. Attackers might be trying to steal your information... NET::ERR_CERT_AUTHORITY_INVALID. Si només un grup privat de persones farà servir el lloc web, això pot ser acceptable, perquè els navegadors permetran una manera de procedir. Per exemple, a Chrome, feu clic a "Avançat" i després a "Continua amb... (no segur)"; encara mostrarà "No segur" i ratllarà "https".
Tingueu en compte que aquest procés us demanarà el vostre país, estat/província, localitat, organització, unitat organitzativa i noms comuns, i la vostra adreça de correu electrònic; tot això és accessible al navegador de qualsevol persona que es connecti al vostre lloc mitjançant HTTPS.
Tingueu en compte també que si esteu donant certificats d'amfitrió virtual, haureu de donar noms de fitxer diferents a continuació i apuntar-los a les configuracions de l'amfitrió virtual.
Canvieu al directori adequat per al vostre servidor web.
Si heu instal·lat Apache:
$ cd /etc/httpd/conf
Si heu instal·lat Nginx:
$ cd /etc/nginx
Un cop al directori adequat, genereu una clau privada ( server.key) i un certificat autofirmat ( server.crt):
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt -days 825
Estableix permisos de només lectura i només permet que l'arrel llegeixi la clau privada:
# chmod 400 server.key
# chmod 444 server.crt
Alternativament, podeu obtenir un certificat signat per una autoritat de certificació de confiança. Podeu pagar a diverses empreses (autoritats de certificació) per signar el vostre certificat. En considerar les autoritats de certificació, pot ser important mirar quins navegadors i quines versions els reconeixeran. És possible que algunes autoritats de certificació més noves no es reconeguin com a més oficials que un certificat autofirmat en versions antigues del navegador.
Normalment no només necessiteu una adreça IP pública, sinó també un nom de domini. Algunes autoritats de certificació poden emetre un certificat a una adreça IP pública, però rarament es fa.
Molts proveïdors ofereixen una prova gratuïta de 30 dies, que es recomana començar per assegurar-vos que el procés us funcioni abans de pagar-lo. Els preus poden variar des d'uns pocs dòlars anuals fins a centenars, depenent del tipus i opcions com ara diversos dominis o subdominis. Un certificat estàndard només indicarà que l'autoritat signant ha verificat que la persona que obté el certificat podria fer canvis al domini. Un certificat de validació ampliada també indicarà que l'autoritat de signatura ha dut a terme una diligència deguda examinant el sol·licitant i, als navegadors moderns, mostrarà una barra verda a l'URL o a prop. Quan verifiqueu que podeu fer canvis al domini, algunes autoritats de signatura us demanaran que rebeu un correu electrònic a una adreça de son important al nom del domini, com araadmin@your-domain.com. Molts ofereixen una verificació alternativa, com ara donar-vos un fitxer per col·locar al vostre servidor, com ara col·locar el seu fitxer /srv/http/.well-known/pki-validation/per a Apache o /usr/share/nginx/html/.well-known/pki-validation/per a Nginx, per a configuracions de directoris d'allotjament únic; o bé creant temporalment una entrada CNAME que us proporcionen als registres DNS del vostre domini.
L'autoritat de signatura que trieu pot tenir passos lleugerament diferents, però la majoria acceptarà el procediment següent:
Al directori adequat, genereu una clau privada ( server.key):
# openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out server.key
Estableix la clau privada com a només de lectura, només per root:
# chmod 400 server.key
Genereu una sol·licitud de signatura de certificat ( server.csr). Heu d'introduir el vostre nom de domini quan us demani el Common Name, i podeu deixar la contrasenya de desafiament en blanc:
# openssl req -new -sha256 -key server.key -out server.csr
Estableix la sol·licitud de signatura del certificat com a només lectura, només per arrel:
# chmod 400 server.csr
Consulteu el contingut de la sol·licitud de signatura del certificat. Aquesta informació està codificada en base64, així que semblarà caràcters aleatoris:
# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
.....
-----END CERTIFICATE REQUEST-----
Seguiu el procés de la vostra autoritat de signatura i, quan se us demani que enganxeu el vostre CSR, copieu i enganxeu tot aquest fitxer, incloses les -----línies. Depenent de l'autoritat de signatura que trieu i del tipus de certificat, us poden donar immediatament el certificat signat o pot ser d'uns quants dies. Un cop us donen el certificat signat, copieu-lo (incloses les línies -----BEGIN CERTIFICATE-----i -----END CERTIFICATE-----) en un fitxer anomenat server.crt, al directori adequat, indicat més amunt per al vostre servidor web, i configureu-lo com a només lectura:
# chmod 444 server.crt
Si utilitzeu un tallafoc, haureu d'habilitar el trànsit TCP entrant al port 443.
Per a Apache
Editeu /etc/httpd/conf/httpd.confi descomenteu aquestes línies:
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include conf/extra/httpd-ssl.conf
Tingueu en compte que si feu servir amfitrions virtuals, fer el canvi anterior a /etc/httpd/conf/httpd.confutilitzarà el mateix certificat a tots els amfitrions. Per donar a cada amfitrió el seu propi certificat per evitar que els navegadors es queixin perquè el certificat no coincideix amb el nom del domini, heu d'editar cadascun dels seus fitxers de configuració /etc/httpd/conf/vhosts/per apuntar al seu propi certificat i clau privada:
- Canvia
<VirtualHost *:80>a <VirtualHost *:80 *:443>.
Dins de la VirtualHostsecció, afegiu el següent:
SSLEngine on
SSLCertificateFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.crt"
SSLCertificateKeyFile "/etc/httpd/conf/YOUR-DOMAIN-NAME.com.key"
Reinicieu Apache:
# systemctl restart httpd
Per a Nginx
Editeu /etc/nginx/nginx.confi, a prop de la part inferior, elimineu els comentaris de la HTTPS serversecció i canvieu les línies a les següents:
ssl_certificate server.crt;
ssl_certificate_key server.key;
root /usr/share/nginx/html;
Tingueu en compte que si feu servir amfitrions virtuals, fer el canvi anterior a /etc/nginx/nginx.confenviarà tots els amfitrions a aquesta ubicació. Per donar a cada amfitrió el seu propi certificat, heu d'editar cadascun dels seus fitxers de configuració /etc/nginx/sites-enabled/per tenir un bloc de servidor addicional per apuntar al seu propi certificat i clau privada:
server {
listen 443 ssl;
server_name YOUR-DOMAIN-NAME.com;
ssl_certificate YOUR-DOMAIN-NAME.com.crt;
ssl_certificate_key YOUR-DOMAIN-NAME.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/YOUR-DOMAIN-NAME.com;
index index.html index.htm;
}
}
Reinicieu Nginx:
# systemctl restart nginx