make then make install
SSL ‘ s primære funktion på internettet er at lette kryptering og tillid, der gør det muligt for en internetsøgende at validere ægtheden af en hjemmeside. SSL fungerer dog også omvendt-klient SSL-certifikater kan bruges til at godkende en klient til internetserveren. Tænk SSH offentlige / private nøglepar, hvis det er kendt for dig. I dette blogindlæg vil jeg skitsere trinnene for at oprette et certifikatautoritetscertifikat, underskrive et servercertifikat og installere det i Apache og oprette et klientcertifikat i et format, der bruges af internetsøgere.
installation af et operativsystem og Apache er uden for rammerne af blogindlægget, og jeg antager, at du har en fungerende Apache-installation, før vi kommer i gang. Jeg bruger et Ubuntu 12.04.4-system i dette blogindlæg.
Generer en certifikatmyndighed (CA) cert
det første trin er at generere et CA-certifikat. Dette CA – certifikat behøver ikke at blive genereret på din internetserver-det kan sidde på den maskine, du vil bruge til at generere SSL-certifikater. Når den er oprettet, vil CA cert fungere som den betroede myndighed for både din server og klient certs. Det svarer til Verisign eller Comodos i den virkelige verden af SSL, men du vil ikke bruge din CA cert til en større offentlig hjemmeside, da dens tillid ikke vil blive indbygget i Bro.sere overalt.
generer dit CA-certifikat ved hjælp af denne kommando:
openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer
så hold dem hemmelige-hold dem sikre. Hvis nogen skulle få fat i disse filer, ville de være i stand til at generere server-og klientcerts, som vores internetserver ville have tillid til, da den vil blive konfigureret nedenfor.
Generer din Apache server SSL-nøgle og certifikat
nu hvor vi har vores CA cert, kan vi generere det SSL-certifikat, der vil blive brugt af Apache.
- Generer en server privat nøgle.
openssl genrsa -out server.key 4096
- brug den private servernøgle til at generere en anmodning om certifikatgenerering.
openssl req -new -key server.key -out server.req -sha256
- brug anmodningen om certifikatgenerering og CA-cert til at generere servercert.
openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer -sha256
- Ryd op – nu hvor cert er oprettet, har vi ikke længere brug for anmodningen.
rm server.req
installer servercertifikatet i Apache
min server kører Ubuntu 12.04.4, så alle stier og kommandoer, der henvises til her, er til det operativsystem.
- Kopier CA cert til et permanent sted. Vi bliver nødt til at specificere vores CA cert i Apache, da det er en selvgenereret CA og ikke en, der er inkluderet i operativsystemer overalt.
cp ca.cer /etc/ssl/certs/
- Kopier serveren cert og privat nøgle til permanent sted.
cp server.cer /etc/ssl/certs/server.crtcp server.key /etc/ssl/private/server.key
- aktiver SSL-modulet i Apache.
a2enmod ssl
- aktiver SSL-siden i Apache og deaktiver HTTP-siden.
a2ensite default-ssla2dissite default
- Rediger / etc / apache2 / sites-enabled / 000-default-ssl (konfigurationsfilen for SSL aktiveret site) og tilføj:
SSLCACertificateFile /etc/ssl/certs/ca.cerSSLCertificateFile /etc/ssl/certs/server.crtSSLCertificateKeyFile /etc/ssl/private/server.key
- Anvend config i Apache.
service apache2 restart
lige nu, hvis du besøger dit https-sted, får du en SSL-fejl svarende til “SSL peer kunne ikke forhandle et acceptabelt sæt sikkerhedsparametre.”Det er godt – det betyder, at din hjemmeside ikke vil acceptere en forbindelse, medmindre din bro.ser bruger en betroet klient cert. Vi genererer en nu.
Generer et klient SSL-certifikat
- Generer en privat nøgle til SSL-klienten.
openssl genrsa -out client.key 4096
- brug klientens private nøgle til at generere en cert-anmodning.
openssl req -new -key client.key -out client.req
- udsted klientcertifikatet ved hjælp af CERT-anmodningen og CA cert/ – tasten.
openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
- konverter klientcertifikatet og den private nøgle til PKCS#12-format til brug for bro.sere.
openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
- Ryd op – fjern klient private nøgle, klient cert og klient anmodning filer som pkcs12 har alt det nødvendige.
rm client.key client.cer client.req
ligner en temmelig lignende proces til at generere et servercertifikat, huh?
endelig importere .P12 fil i din bro.ser. På vinduer kan du dobbeltklikke på filen for at importere til operativsystemets keystore, der vil blive brugt af IE og Chrome. Åbn indstillingerne – > avanceret -> certifikater -> Vis certifikater -> dine certifikater og importer certifikatet.
besøg nu din hjemmeside med den bro.ser, hvor du importerede klientcertifikatet. Du bliver sandsynligvis bedt om, hvilket klientcertifikat du skal bruge – Vælg det. Så vil du blive godkendt og tilladt i!