Hvordan lage selvsignerte SSL-sertifikater og nøkler for Apache på RHEL/CentOS 7.0


SSL (Secure Sockets Layer) er en kryptografisk protokoll som tillater sikker dataflyt mellom en server og dens klienter ved å bruke symmetriske/asymmetriske nøkler ved å bruke et digitalt sertifikat signert av en Certificate Authority (CA).

  1. Grunnleggende LAMPE-installasjon på RHEL/CentOS 7.0

Denne opplæringen gir en tilnærming til hvordan du setter opp Secure Sockets Layer (SSL) kommunikasjonskryptografisk protokoll på Apache Web Server installert i Red Hat Enterprise Linux/CentOS 7.0, og genererer selvsignerte sertifikater og nøkler med hjelp av et bash-skript som i stor grad forenkler hele prosessen.

Trinn 1: Installer og konfigurer Apache SSL

1. For å aktivere SSL på Apache HTTP Server, bruk følgende kommando for å installere SSL-modulen og OpenSSL-verktøysettet som er nødvendig for SSL/TLS-støtte.

# yum install mod_ssl openssl

2. Etter at SSL-modulen er installert, start HTTPD-demonen på nytt og legg til en ny brannmurregel for å sikre at SSL-porten – 443 – åpnes for eksterne tilkoblinger på maskinen din når du lytter stat.

# systemctl restart httpd
# firewall-cmd --add-service=https   ## On-fly rule

# firewall-cmd --permanent  --add-service=https   ## Permanent rule – needs firewalld restart

3. For å teste SSL-tilkoblingen, åpne en ekstern nettleser og naviger til serverens IP-adresse ved hjelp av HTPS-protokollen på https://server_IP.

Trinn 2: Opprett SSL-sertifikater og nøkler

4. Den forrige SSL-kommunikasjonen mellom serveren og klienten ble utført med et standard sertifikat og nøkkel som ble generert automatisk ved installasjon. For å generere nye private nøkler og selvsignerte sertifikater oppretter par følgende bash-skript på en kjørbar systembane (PATH).

For denne veiledningen /usr/local/bin/ ble banen valgt, sørg for at skriptet har kjørbare bit satt og bruk det deretter som en kommando for å lage nye SSL-par på /etc/ httpd/ssl/ som standardplassering for sertifikater og nøkler.

# nano /usr/local/bin/apache_ssl

Bruk følgende filinnhold.

#!/bin/bash
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl

echo -e "Enter your virtual host FQDN: \nThis will generate the default name for Apache SSL Certificate and Key!"
read cert

openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out $cert.key
chmod 600 $cert.key
openssl req -new -key $cert.key -out $cert.csr
openssl x509 -req -days 365 -in $cert.csr -signkey $cert.key -out $cert.crt

echo -e " The Certificate and Key for $cert has been generated!\nPlease link it to Apache SSL available website!"
ls -all /etc/httpd/ssl
exit 0

5. Gjør nå dette skriptet kjørbart og start det for å generere et nytt par sertifikater og nøkkel for din Apache SSL Virtual Host.

Fyll den med informasjonen din og vær oppmerksom på Common Name-verdien for å matche serverens FQDN eller i tilfelle Virtual Hosting samsvarer med nettadressen du får tilgang til når du kobler til et sikkert nettsted.

# chmod +x /usr/local/bin/apache_ssl
# apache_ssl

6. Etter at sertifikatet og nøkkelen er generert, vil skriptet presentere en lang liste over alle dine Apache SSL-par som er lagret /etc/httpd/ssl/.

7. En annen tilnærming til å generere SSL-sertifikater og -nøkler er å installere crypto-utils-pakken på systemet ditt og generere par ved å bruke genkey-kommandoen, noe som kan skape noen problemer, spesielt når det brukes på en Putty-terminalskjerm.

Så jeg foreslår at du bare bruker denne metoden når du er direkte koblet til en skjermmonitor.

# yum install crypto-utils
# genkey your_FQDN

8. For å legge til det nye sertifikatet og nøkkelen til SSL-nettstedet ditt, åpne konfigurasjonsfilen for nettstedet og erstatt SSLCertificateFile- og SSLCertificateKeyFile-setningene med de nye parplasseringene og navnene tilsvarende.

9. Hvis sertifikatet ikke er utstedt av en klarert CA – sertifiseringsinstans eller vertsnavnet fra sertifikatet ikke samsvarer med vertsnavnet som opprettet forbindelsen, skal det vises en feil i nettleseren din, og du må manuelt godta sertifikatet.

Det er det! Nå kan du bruke apache_sslsom en kommandolinje på RHEL/CentOS 7.0 for å generere så mange par med selvsignerte sertifikater og nøkler du trenger, og alle vil bli beholdt på /etc/httpd/ ssl/-bane med nøkkelfilen beskyttet med 700-tillatelser.