SSL

Installera ett SSL certifikat till WordPress och logga in via HTTPS

Förberedelser

Innan vi kan registrera dig för ett certifikat måste vi skapa en RSA privat nyckel. Nyckeln behövs för att skapa CSR (Certificate Signing Request) och används även av Nginx senare för att kryptera anslutningen.

$ Openssl genrsa-des3 ut anvnamn.se_secure.key 4096

Du kommer att uppmanas att ge en lösenordsfras (obligatoriskt). Nyckelfilen är säkrad med detta lösenord, men vi kommer så småningom ta bort detta skydd.
Skapa certifikatet

Nu kommer vi att använda den privata nyckeln för att skapa ett Certificate Signing Request som sedan lämnas till CA – i mitt fall startssl.

$ Openssl req-new-key anvnamn.se_secure.key ut anvnamn.se.csr

OpenSSL kommer att be dig om viss allmän information, t.ex. landskod, företagsnamn, mm som ska ingå i ditt certifikat.

Efter registreringen kan du godkänna din domän på startssl webbplats för att skapa en ”Webbserver SSL / TLS-certifikat” med ”Certifikat Wizard” på kontrollpanelen.

Eftersom vi redan genererat den privata nyckeln på kommandoraden måste vi hoppa över skapandet av nyckeln steget. Du kan sedan enkelt skicka det skapade certifikatet (Copy & Paste).

Det undertecknade certifikatet kommer att vara i PEM-format. Vi kan bara spara innehållet i den visade rutan till en fil med en .pem ändelse (t.ex. anvnamn.se.pem).

Vi behöver också rotcertifikatutfärdare och klass 1 mellanliggande certifikat. Så se till att spara dem.

cd /etc/nginx/conf.d/
wget https://www.startssl.com/certs/ca.pem
wget https://www.startssl.com/certs/sub.class1.server.ca.pem

Konfigurera Nginx

Innan vi börjar konfigurera Nginx / SSL måste vi se till att ta bort lösenordet från vår RSA-nyckel. Annars måste du ange lösenordet varje gång Nginx startas.

$ Openssl rsa-in anvnamn.se_secure.key ut anvnamn.se.key

Den okrypterade privata nyckeln skall endast vara läsbara för ägaren till Nginx processen. I mitt fall anvnamn_se.

$ Chmod 400 anvnamn.se.key
$ Sudo chown anvnamn_se: anvnamn_se anvnamn.se.key

Eftersom vi använder en kedja av certifikat måste vi sammanfoga roten och mellanliggande cert med vårt eget certifikat.

$ cat anvnamn.se.pem sub.class1.server.ca.pem ca.pem> anvnamn.se_www.pem

Nu ska vi lägga till SSL stöd i Nginx.

cd /etc/nginx/sites-enabled/
nano anvnamn.se

Klistra in följande kod
server {
listen 80;
listen 443 ssl;
server_name anvnamn.se *.anvnamn.se
ssl on;
ssl_certificate /etc/nginx/conf.d/anvnamn.se_www.pem;
ssl_certificate_key /etc/nginx/conf.d/anvnamn.se.key;
ssl_ciphers HIGH:!ADH:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols SSLv3 TLSv1;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;

server_name_in_redirect off;
client_max_body_size 64M;

Spara filen och starta om Nginx
sudo services nginx restart

Nu ska vi konfigurera WordPress till att använda HTTPS när vi loggar in. Det gör vi genom att ladda hem tillägget ”WordPress HTTPS” och aktivera det.

Klart! Nu ska du ha en fungerande WordPress installation med SSL. Om det fungerar som det ska kommer adressen till din wordpress kontrollpanel börja med ”https://”