Installeer een SSL-certificaat op Apache Mod_SSL

Apache configureren met SSL

De volgende instructies gaan ervan uit dat u zowel een beveiligde server (op poort 443) en een gewone server (op port 80). Eerst moet u de server configureren om op beide poorten te luisteren. Ofwel bewerken /etc/apache2/ports.conf (in Debian; dit is inbegrepen in apache2.conf) of bewerken /etc/apache2/apache2.conf direct om de regels op te nemen:

Luister 80 Luister 443

Bewerk vervolgens /etc/apache2/sites-enabled/yoursite om de SSL-instellingen te gebruiken. Het scheiden van de reguliere en veilige serverinstellingen met behulp van VirtualHosts is de gemakkelijkste optie qua onderhoudbaarheid. Elke configuratie buiten de VirtualHosts-secties (zoals het instellen van de ServerAdmin) is van toepassing op zowel (als alle andere) VirtualHosts.

Opmerking: Vanaf Apache 2.4.8 is de praktijk van het bewaren van het servercertificaat en de tussenliggende certificaatketen in afzonderlijke bestanden beëindigd. Zowel de huidige als de verouderde methoden worden gedetailleerd beschreven in de klikbare tabbladen hieronder.
Apache 2.4.8 of hogerApache 2.4.7 of lager

Versies van Apache 2.4.8 en hoger verwachten dat uw servercertificaat wordt samengevoegd met eventuele tussenliggende certificaten in één bestand. Kies de om een ​​geketend bestand van SSL.com te downloaden Nginx downloadlink in uw portalaccount:

Nginx

Als alternatief kunt u uw bestaande certificaat- en tussenbestanden samenvoegen met een opdracht als de volgende:

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

Voeg de volgende sectie toe aan uw configuratiebestand:

# =================================================== # SSL /TLS instellingen # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / uwsite" SSLEngine op SSLCertificateFile /etc/ssl/private/uwdomein.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Een paar opmerkingen over deze configuratie:

  • SSLEngine moet zijn ingeschakeld zodat de server SSL gebruikt.
  • DocumentRoot stelt de hoofdmap voor deze virtuele host in. Dit betekent dat u beveiligde inhoud volledig kunt scheiden van reguliere inhoud.
  • SSLCertificateFile moet worden ingesteld op de locatie waar u het bestand met uw servercertificaat en tussenliggende ketting plaatst.
  • SSLCertificateKeyFile moet worden ingesteld op de locatie waar u uw privésleutelbestand plaatst.

Voeg de volgende sectie toe aan uw configuratiebestand:

# =================================================== # SSL /TLS instellingen # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine op SSLCertificateFile /etc/ssl/private/uwdomein.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / sslle- private client.crt

Een paar opmerkingen over deze configuratie:

  • SSLEngine moet zijn ingeschakeld zodat de server SSL gebruikt.
  • DocumentRoot stelt de hoofdmap voor deze virtuele host in. Dit betekent dat u beveiligde inhoud volledig kunt scheiden van reguliere inhoud.
  • SSLCertificateFile, SSLCertificateChainFile, en SSLCertificateKeyFile moet worden ingesteld op de locaties waar u respectievelijk uw certificaat, tussenliggende en persoonlijke sleutelbestanden plaatst.

Om de reguliere server op poort 80 uit te voeren, voegt u de volgende sectie toe aan het configuratiebestand:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Hostspecifieke directory-instellingen, opties, enz. # De meeste van deze opties worden waarschijnlijk buiten de VirtualHosts # -secties ingesteld.

Start de webserver opnieuw nadat u het bewerkte configuratiebestand heeft opgeslagen. Als u een wachtwoordzin heeft gebruikt bij het genereren van uw certificaat, moet u deze invoeren wanneer u wordt uitgedaagd.

Testen

Maak een basisindex.html-pagina waar de hoofdmap van uw webserver zich ook bevindt, als u daar nog geen inhoud hebt.

Richt vervolgens uw webbrowser op https://www.yoursite.com. U zou een geopende SSL-verbinding moeten zien en de pagina moet worden afgeleverd. Als u een zelfondertekend certificaat gebruikt, zal uw browser een waarschuwing geven dat de identiteit van de server niet kan worden geverifieerd. U kunt ervoor kiezen om het certificaat te bekijken en te accepteren. Als u een extern certificaat gebruikt, moet dit allemaal gebeuren zonder tussenkomst.

Zorg er ook voor dat u geen toegang heeft tot de beschermde inhoud via http: //. Als je het probeert, zou je een foutmelding moeten krijgen.

Probleem oplossen

Als het niet werkt zoals verwacht, controleer dan eerst of uw server echt actief is, met ps -a | grep apache. Als dat niets oplevert, probeer het dan opnieuw op te starten en controleer op foutmeldingen op de terminal.

Controleer ook of de rechten op uw sleutel- en certificaatbestanden correct zijn ingesteld (zie hierboven), evenals de rechten op uw test-HTML-bestand en de bovenliggende map.

Controleer vervolgens de logboeken. U moet zowel de hoofdserverlogboeken als de SSL-logboeken controleren die u in uw configuratiebestand hierboven heeft ingesteld. Als je niets nuttigs krijgt, probeer dan de LogLevel-waarde in het Apache2-configuratiebestand te veranderen in "debug", start Apache2 opnieuw en test opnieuw. Dit zou meer logfile-gegevens moeten opleveren.

Als u ook een gewone webserver op poort 80 gebruikt, probeer dan een testpagina op te halen via http: // in plaats van https: // om te helpen bepalen of het probleem bij de webserver of bij de SSL-verbinding zit. Merk op dat in de bovenstaande configuratie de hoofdmap van de webserver verschillend is voor http: // en https: //, zodat u niet (of zou moeten) toegang krijgen tot dezelfde inhoud. Als uw testpagina in de http: // root-directory echter goed werkt en uw testpagina in de https: // root-directory niet, dan kan dat u helpen om het probleem op te sporen.

Als het probleem de SSL-verbinding is, is dit een handig hulpmiddel s_client, wat een diagnostisch hulpmiddel is voor het oplossen van problemen TLS/ SSL-verbindingen. Het basisgebruik is: /usr/bin/openssl s_client -connect localhost:443. Er zijn ook tal van andere opties, waarvoor u de documentatie kunt controleren. Als u foutmeldingen krijgt, zou dit u moeten helpen bij het lokaliseren van het probleem.

Bedankt voor het kiezen van SSL.com! Als u vragen heeft, neem dan contact met ons op via e-mail op Support@SSL.com, bel 1-877-SSL-SECURE, of klik gewoon op de chatlink rechts onderaan deze pagina.

Abonneer u op de nieuwsbrief van SSL.com

Mis geen nieuwe artikelen en updates van SSL.com

Blijf geïnformeerd en veilig

SSL.com is een wereldleider op het gebied van cyberbeveiliging, PKI en digitale certificaten. Meld u aan om het laatste branchenieuws, tips en productaankondigingen te ontvangen van SSL.com.

We willen graag uw feedback

Vul onze enquête in en laat ons uw mening over uw recente aankoop weten.