Begränsa åtkomst till webbservern Raspberry Pi (3 / 7 steg)
Steg 3: Skapa server/klient certifikat-paret använder OpenSSL
Öppna ett terminalfönster på Mac och logga in på Raspberry Pi:
$ ssh pi
login: ♣raspberry-pi-password♣ < br >
Ta bort nycklar i föregående steg:
$ sudo rm server.key
$ sudo rm server.crt
$ sudo rm server.csr
$ sudo rm server.key.insecure
Generera en certifikatutfärdare (CA)
Innan du skapar server/klient certifikat, setup en självsignerade certifikat (CA), som kan användas att underteckna de server/klient. När du skapat kommer att CA cert fungera som betrodd myndighet för både din server och klientcertifikat (eller certs).
$ sudo openssl req - newkey rsa:4096 - keyform PEM - keyout ca.key - x 509 - dagar 3650 - outform PEM-ut ca.cer
lösenordsmening = ♣cert-password♣
Genererar: ca.cer, ca.key
Generera Apache server SSL nyckel och certifikat
Generera server.key:
$ sudo openssl genrsa-ut server.key 4096
Skapa en certifikatbegäran generation.
$ sudo openssl req-nytt - nyckel server.key-ut server.req
Använda generation certifikatbegäran och CA cert för att generera server cert
$ sudo openssl x509 - req-i server.req -CA ca.cer-CAkey ca.key-set_serial 100 - extensions server-dagar 1460 - outform PEM-ut server.cer
Städa upp – nu när absolut har skapats, behöver vi inte längre begäran.
$ sudo rm server.req
Installera certifikatet i Apache
Kopiera den CA cert till en permanent plats. Vi måste du ange våra CA cert i Apache eftersom det är en själv genereras CA och inte en som ingår i operativsystemen överallt.
$ sudo cp ca.cer/etc/ssl/certs /
Kopiera den server certifikat och privata nyckel till permanenta.
$ sudo cp server.cer /etc/ssl/certs/server.crt
$ sudo cp server.key /etc/ssl/private/server.key
Aktivera SSL i Apache.
$ sudo a2enmod ssl
Aktivera SSL platsen i Apache
$ sudo a2ensite standard-ssl
Inaktivera HTTP-webbplats
$ sudo a2dissite standard
Redigera config-filen för webbplatsen SSL aktiverat och Lägg till raderna nedan:
$ 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
Gäller config i Apache.
$ sudo service apache2 vila
Just nu om du besöker webbplatsen https, får du ett SSL-fel som liknar "SSL peer inte kunde förhandla fram en acceptabel uppsättning säkerhetsparametrar." Det är bra-det betyder att din webbplats inte kommer att acceptera en anslutning om inte din webbläsare använder en betrodd klienten cert. Vi kommer att generera en nu.
Generera ett SSL certifikat
Skapa en privat nyckel för SSL-klienten.
$ sudo openssl genrsa-ut client.key 4096
Använda klientens privata nyckel ska genereras ett cert.
$ sudo openssl req-nytt - nyckel client.key-ut client.req
Utfärda klientcertifikat med hjälp av cert begäran och cert/certifikatutfärdarnyckeln.
$ sudo openssl x509 - req-i client.req -CA ca.cer-CAkey ca.key-set_serial 101 - extensions klient-dagar 365 - outform PEM-ut client.cer
Konvertera klientcertifikat och privata nyckel till pkcs #12-format för användning i webbläsare.
$ sudo openssl pkcs12-export - inkey client.key-i client.cer-ut client.p12
Rensa upp-ta bort klienten privat nyckel, klienten cert och klientens begäran filer som pkcs12 har allt som behövs.
$ sudo rm client.key client.cer client.req