Stap 3: Server/client certificaat paar die OpenSSL gebruiken maken
Toegankelijk te terminal venster op de Mac en inloggen op de Raspberry Pi:
$ ssh pi login: ♣raspberry-pi-password♣ <br>
Verwijder registersleutels die zijn gemaakt in de vorige stap:
$ sudo rm server.key $ sudo rm server.crt $ sudo rm server.csr $ sudo rm server.key.insecure
Certificate Authority (CA) genereren
Voordat u server/clientcertificaat maakt, setup een zelfondertekend Certificate Authority (CA), die kan worden gebruikt om de server/client-certificaten te ondertekenen. Als eenmaal gemaakt, zal de CA-cert fungeren als de vertrouwde instantie voor zowel uw server en clientcertificaten (of certs).
$ sudo openssl req -newkey rsa:4096 -keyform PEM -keyout ca.key -x509 -days 3650 -outform PEM -out ca.cer pass phrase = ♣cert-password♣
Genereert: ca.cer, ca.key
Genereren van Apache server SSL sleutel en het certificaat
Genereren van server.key:
$ sudo openssl genrsa -out server.key 4096
Een generatie van de certificaataanvraag is gegenereerd.
$ sudo openssl req -new -key server.key -out server.req
De generatie van de certificaataanvraag en het CA-cert gebruiken voor het genereren van de server cert
$ sudo openssl x509 -req -in server.req -CA ca.cer -CAkey ca.key -set_serial 100 -extensions server -days 1460 -outform PEM -out server.cer
Opruimen – moeten nu de cert is gemaakt, niet langer we het verzoek.
$ sudo rm server.req
Installeer het servercertificaat in Apache
Kopieer het CA-cert naar een permanente plaats. We zullen moeten specificeren onze CA cert in Apache omdat het een zelf gegenereerd CA en niet een die is opgenomen in de besturingssystemen overal.
$ sudo cp ca.cer /etc/ssl/certs/
Kopieer de server cert en de persoonlijke sleutel naar permanente plaats.
$ sudo cp server.cer /etc/ssl/certs/server.crt $ sudo cp server.key /etc/ssl/private/server.key
Het activeren van de SSL-module in Apache.
$ sudo a2enmod ssl
Activeren van de SSL-site in Apache
$ sudo a2ensite default-ssl
De HTTP-site uitschakelen
$ sudo a2dissite default
Bewerk nu het config-bestand voor de website SSL is ingeschakeld en voeg de onderstaande regels:
$ sudo nano /etc/apache2/sites-enabled/000-default-ssl SSLCACertificateFile /etc/ssl/certs/ca.cer SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key
Toepassing van de config in Apache.
$ sudo service apache2 restart
Nu als u uw https-site bezoekt, krijgt u een SSL-fout vergelijkbaar met "SSL peer was niet in staat om te onderhandelen over een aanvaardbaar pakket beveiligingsparameters." Dat is goed-het betekent dat uw site zal niet accepteren van een verbinding, tenzij uw browser maakt gebruik van een vertrouwde client cert. We zullen nu genereren.
Genereren van een SSL-clientcertificaat
Een persoonlijke sleutel genereren voor de SSL-client.
$ sudo openssl genrsa -out client.key 4096
Gebruikt de persoonlijke sleutel van de client om een cert-aanvraag te genereren.
$ sudo openssl req -new -key client.key -out client.req
Afgifte van het clientcertificaat met behulp van het cert-verzoek en de CA-cert/sleutel.
$ sudo openssl x509 -req -in client.req -CA ca.cer -CAkey ca.key -set_serial 101 -extensions client -days 365 -outform PEM -out client.cer
Omzetten in het clientcertificaat en de persoonlijke sleutel pkcs #12-indeling voor gebruik door browsers.
$ sudo openssl pkcs12 -export -inkey client.key -in client.cer -out client.p12
Opruimen-verwijderen van de persoonlijke sleutel van de client, de client cert en de bestanden van de aanvraag van de client, zoals de pkcs12 alles wat nodig is heeft.
$ sudo rm client.key client.cer client.req