Installer et SSL-certifikat på Apache Mod_SSL

Sådan installeres en SSL /TLS Certifikat på Apache Mod_SSL

Konfiguration af Apache med SSL

Følgende instruktioner forudsætter, at du vil køre begge en sikker server (på port 443) og en almindelig server (på port 80). Først skal du konfigurere serveren til at lytte i begge porte. Enten rediger /etc/apache2/ports.conf (i Debian; dette er inkluderet i apache2.conf) eller rediger /etc/apache2/apache2.conf direkte for at inkludere linjerne:

Lyt 80 Lyt 443

Dernæst rediger /etc/apache2/sites-enabled/yoursite at bruge SSL-indstillingerne. Adskillelse af de regelmæssige og sikre serverindstillinger ud ved hjælp af VirtualHosts er den nemmeste mulighed med hensyn til vedligeholdelighed. Enhver konfiguration uden for VirtualHosts-sektionerne (f.eks. Indstilling af ServerAdmin) gælder både (og enhver anden) VirtualHosts.

Bemærk: Fra Apache 2.4.8 er fremgangsmåden med at opbevare servercertifikatet og den mellemliggende certifikatkæde i separate filer udgået. Både de nuværende og ældre metoder er detaljeret i de klikbare faner nedenfor.
Apache 2.4.8 eller nyereApache 2.4.7 eller nyere

Versioner af Apache 2.4.8 og nyere forventer, at dit servercertifikat sammenkædes med mellemliggende certifikater i en fil. Hvis du vil hente en kædet fil fra SSL.com, skal du vælge Nginx download-link på din portalkonto:

Nginx

Alternativt kan du sammenkoble dit eksisterende certifikat og mellemfiler med en kommando som følgende:

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Føj følgende afsnit til din konfigurationsfil:

# ==================================================== # SSL /TLS indstillinger # =================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Et par bemærkninger til denne konfiguration:

  • SSLEngine skal være aktiveret, så serveren bruger SSL.
  • DocumentRoot sætter rodkataloget til denne virtuelle vært. Dette betyder, at du kan adskille sikkert indhold helt fra almindeligt indhold.
  • SSLCertificateFile skal indstilles til det sted, hvor du placerer filen med dit servercertifikat og mellemkæde.
  • SSLCertificateKeyFile skal indstilles til det sted, hvor du placerer din private nøglefil.

Føj følgende afsnit til din konfigurationsfil:

# ==================================================== # SSL /TLS indstillinger # =================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl- private / ca-bund klient.crt

Et par bemærkninger til denne konfiguration:

  • SSLEngine skal være aktiveret, så serveren bruger SSL.
  • DocumentRoot sætter rodkataloget til denne virtuelle vært. Dette betyder, at du kan adskille sikkert indhold helt fra almindeligt indhold.
  • SSLCertificateFile, SSLCertificateChainFile, og SSLCertificateKeyFile skal indstilles til de steder, hvor du placerer henholdsvis dit certifikat, mellemliggende og private nøglefiler.

For at køre den almindelige server på port 80 skal du tilføje følgende afsnit til konfigurationsfilen:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Værtsspecifik katalogopsætning, indstillinger osv. # De fleste af disse indstillinger sandsynligvis indstilles uden for VirtualHosts # -sektionerne.

Når du har gemt den redigerede konfigurationsfil, skal du genstarte webserveren. Hvis du brugte en adgangssætning, når du genererede dit certifikat, skal du indtaste det, når du bliver udfordret.

Test

Opret en grundlæggende index.html side, hvor rodmappen til din webserver er placeret, hvis du ikke allerede har indhold der.

Peg derefter din webbrowser på https://www.yoursite.com. Du skal se en SSL-forbindelse åbnet og siden leveret. Hvis du bruger et selvsigneret certifikat, popper din browser en advarsel, der advarer dig om, at serverens identitet ikke kan verificeres. Du kan vælge at få vist og acceptere certifikatet. Hvis du bruger et eksternt certifikat, skal det hele ske uden indblanding.

Sørg også for, at du ikke kan få adgang til det beskyttede indhold ved hjælp af http: //. Hvis du prøver, skal du få en fejlmeddelelse.

Fejlfinding

Hvis det ikke fungerer som forventet, skal du først kontrollere, om din server faktisk kører ved hjælp af ps -a | grep apache. Hvis det ikke returnerer noget, skal du prøve at genstarte det og kontrollere, om der er fejlmeddelelser på terminalen.

Kontroller også, at tilladelserne på dine nøgle- og certifikatfiler er indstillet korrekt (se ovenfor) samt tilladelserne på din test-HTML-fil og dens overordnede bibliotek.

Tjek derefter logfilerne. Du skal kontrollere både de vigtigste serverlogfiler og også de SSL-logfiler, du opretter i din konfigurationsfil ovenfor. Hvis du ikke får noget nyttigt, så prøv at ændre LogLevel-værdien i Apache2-konfigurationsfilen til "fejlretning", genstart Apache2 og test igen. Dette skulle give flere logfildata.

Hvis du også kører en almindelig webserver på port 80, skal du prøve at hente en testside via http: // snarere end https: // for at hjælpe med at identificere, om problemet er med webserveren eller med SSL-forbindelsen. Bemærk, at i opsætningen ovenfor er webserverens rodmappe forskellig for http: // og https: //, så du vil ikke (eller burde ikke!) Være i stand til at få adgang til det samme indhold. Hvis din testside i http: // rodmappen fungerer fint, og din testside i https: // rodmappen ikke gør det, kan det hjælpe dig med at lokalisere problemet.

Hvis problemet er SSL-forbindelsen, er et nyttigt værktøj s_client, som er et diagnostisk værktøj til fejlfinding TLS/ SSL-forbindelser. Den grundlæggende anvendelse er: /usr/bin/openssl s_client -connect localhost:443. Der er også mange andre muligheder, som du kan kontrollere dokumentationen for. Hvis du får fejlmeddelelser, skal dette hjælpe dig med at finde problemet.

Tak for at du valgte SSL.com! Hvis du har spørgsmål, bedes du kontakte os via e-mail på Support@SSL.com, opkald 1-877-SSL-SECURE, eller bare klik på chatlinket nederst til højre på denne side.

Hold dig informeret og sikker

SSL.com er en global leder inden for cybersikkerhed, PKI og digitale certifikater. Tilmeld dig for at modtage de seneste industrinyheder, tips og produktmeddelelser fra SSL.com.

Vi vil meget gerne have din feedback

Tag vores undersøgelse og fortæl os dine tanker om dit seneste køb.