Drupal på SSL med Nginx eller Apache

Drupal på SSL med Nginx eller Apache

Not sure yet if we're using this field. Also, we need smaller font and just one row of editor. And not area below for switching text format.

Skal du ha Drupal-installasjonen din på SSL? Da finner du alt du trenger her!
 

Skal du ha Drupal-installasjonen din på SSL? Da finner du alt du trenger her!

Først må du generere et nøkkelpar. Dette gjøres med verktøypakken openssl som trolig er installert på din server. Er den ikke det kan du installere den med kommandoen apt-get install openssl.

  • Ikke-kryptert nøkkel: (Med 2048-kommandoen tvinger du 2048 bits nøkkellengde for økt sikkerhet)
    openssl genrsa -out www.dittdomene.com.key 2048
  • Generer CSR (Certificate Signing Request):
    openssl req -new -key www.dittdomene.com.key -out www.dittdomene.com.csr

På spørsmål om passord, trykk enter for å ikke fylle inn noe. Deretter fyller du inn disse attributtene:

  • Country Name: NO (eventuelt annet for hvilket land nettstedet hører til)
  • State or Province: Fylket nettstedet hører til
  • Locality or City: Byen nettstedet hører til
  • Company: Firmanavn (kan ikke inkludere &, @ eller andre symboler)
  • Organizational Unit: Valgfritt, kan være tomt
  • Common Name: URL for site. Det viktigste feltet. Må være nøyaktig likt URL som blir brukt for SSL (uten https://). Dersom du skal ha wildcard-sertifikat (gjeldende for flere subdomener) bruker du *.dittdomene.com, ellers dittdomene.com eller www.dittdomene.com.

Nå som .csr-filen er generert, ta backup av .key-filen. Da slipper du å bestille nytt sertifikat dersom du mister alle filene ved en serverkrasj.

Nå kan du benytte den genererte CSR-filen til å bestille ditt sertifikat. Følg instruksene hos din leverandør, og når du har mottatt sertifikatet fortsetter du på denne veiledningen. Jeg deler herfra opp i to deler, en for Nginx og en for Apache.

Nginx:

Kopier sertifikatfilene til serveren din. Legg dem i en mappe som ikke er tilgjengelige via nettleseren, altså utenfor roten for nettstedet ditt. For Geotrust:

  • Last ned Geotrust Intermediate-sertifikat og lagre det i en ren tekst-editor med filnavn intermediate.crt.
  • Lagre sertifikatet du har fått utstedt i en ren tekst-editor med filnavn public.crt
  • Slå sammen disse filene med kommandoen cat intermediate.crt >> public.crt

Konfigurer vhost-filen for ditt nettsted til å inneholde denne koden i tillegg til koden for port 80:

listen 443;

ssl on;
ssl_certificate /etc/ssl/public.crt;
ssl_certificate_key /etc/ssl/dittdomene.com.key;

Denne må selvsagt tilpasses ditt serveroppsett med tanke på filplasseringer. Dersom du skal ha SSL på hele nettstedet legger du til denne koden:

if ($ssl_protocol = "") {
    rewrite ^https://$server_name$request_uri? permanent;
}

Om ikke følger beskrivelse av en Drupal-modul for SSL på selvvalgte undersider på slutten av denne veiledningen.

Avslutt med å restarte Nginx:

sudo service nginx restart

Apache:

  • Last ned Geotrust Intermediate-sertifikat og lagre det i en ren tekst-editor med filnavn intermediate.crt.
  • Lagre sertifikatet du har fått utstedt i en ren tekst-editor med filnavn public.crt

Konfigurer en vhost-fil for ditt nettsted etter denne malen:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerAdmin epost@dittdomene.com
        ServerName dittdomene.com
        DocumentRoot dittdomene.com_filplassering

        LogLevel warn
        CustomLog dittdomene.com_loggfilplassering combined
        ErrorLog dittdomene.com_loggfilplassering

        SSLEngine on

        SSLCertificateFile /filsti_til/public.crt
        SSLCertificateKeyFile /filsti_til/dittdomene.com.key
        SSLCertificateChainFile /filsti_til/intermediate.crt
</VirtualHost>
</IfModule>

Avslutt med å restarte Apache:

sudo service apache2 restart

Dersom du skal ha SSL på hele nettstedet legger du til denne koden i din vhost for port 80:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://dittdomene.com$1 [R,L]

Om ikke følger beskrivelse av en Drupal-modul for SSL på selvvalgte undersider på slutten av denne veiledningen.

Secure Pages-modulen for Drupal

Ønsker du SSL på utvalgte undersider av nettstedet ditt anbefales modulen Secure Pages (http://drupal.org/project/securepages). Med denne kan du enkelt konfigurere hvilke undersider som tvinges over på https.

For Drupal 7 er den i øyeblikket i Dev-versjon, men prosjektets hjemmeside beskriver greit hvordan man får denne til å fungere med en innstilling og to patcher.

Denne oppskriften baserer seg på Ubuntu Linux. For andre distribusjoner kan noen detaljer, spesielt kommandoer, avvike noe. Fremgangsmåten jeg tar for meg er for QuickSSL Premium-sertifikatetfra GeoTrust, andre sertifikater og andre leverandører kan stille andre krav.

Lykke til! Legg gjerne igjen en kommentar om du synes noe mangler eller har andre innspill.

Jan-Helge Hansen

Jan-Helge Hansen

Les flere artikler fra Jan-Helge Hansen.

Prosjektkoordinator i Frontkom, ivrig opptatt av SEO og sosiale medier. Finnes blant annet på . Blir glad av raske nettsider.