Come creare facilmente un certificato SSL e configurarlo in Apache2 in Mac OS X?


34

Vorrei utilizzare il mio Mac OS X con https per i test di sviluppo locale. Come posso fare in modo che Apache2 risponda a ssl, solo per proposte di test - Non voglio un vero certificato, solo un falso per far funzionare https locale

Risposte:


58

Per i test di sviluppo locale è adeguato un certificato autofirmato. Puoi generarne uno con il kit OpenSSL in questo modo:

Generazione della chiave privata:

openssl genrsa -des3 -out server.key 1024

produzione:

Generazione di chiave privata RSA, modulo lungo 1024 bit
.................................................. ....... ++++++
........ ++++++
e è 65537 (0x10001)
Inserisci la passphrase PEM:
Verifica password - Immettere la passphrase PEM:

inserisci una passphrase per la tua chiave privata.

Generazione del CSR (richiesta di firma del certificato):

openssl req -new -key server.key -out server.csr

richiederà dettagli come questo:

Nome paese (codice di 2 lettere) [GB]:
Nome Stato o Provincia (nome completo) [Berkshire]:
Nome località (ad es. Città) [Newbury]:
Nome dell'organizzazione (ad es. Società) [My Company Ltd]:
Nome unità organizzativa (ad es. Sezione) []:
Nome comune (ad esempio, il tuo nome o il nome host del tuo server) []:
Indirizzo email []:
Inserisci i seguenti attributi "extra"
da inviare con la richiesta di certificato
Una password di sfida []:
Un nome di società facoltativo []:

è abbastanza semplice, il nome comune è il nome host del server come indicato tra parentesi.

Generazione del certificato autofirmato:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Configurazione SSL in httpd.conf per Apache:

SSLEngine acceso
SSLCertificateFile /path/to/generated/server.crt
SSLCertificateKeyFile /path/to/generated/server.key

(sostituire il percorso in modo appropriato con il percorso del certificato e della chiave)

Riavvia Apache :

apachectl restart

Apache ti chiederà la passphrase per la tua chiave. Se ritieni di dover arrestare molto il server, potresti voler rimuovere la passphrase dalla chiave in modo da evitare di immetterla ogni volta. Altrimenti, non preoccuparti. In tal caso, completare questo passaggio dopo il passaggio 2 ( Generazione del CSR ):

cp server.key server.key.copy
openssl rsa -in server.key.copy -out server.key

per me è quasi un piacere. Quando provo ad accedere ad alcune pagine del mio Rails, usando http la pagina esiste, ma quando uso https, restituisce la pagina non trovata. Sai cosa potrebbe essere?
Daniel Cukier,

Hai cambiato il tuo virtualhost per usare https sulla porta 443? Dovrebbe apparire così: <VirtualHost 192.168.1.100:443> SSLEngine Acceso, ecc .... </VirtualHost>
John T

Grazie per questo, ho ottenuto un certificato SSL che funziona bene su Lion con questo. Ho solo pensato di aggiungere un paio di punti per rendere la vita più semplice. Apache di Apple ha un httpd-ssl.conf che è già impostato per cercare in / private / etc / apache2, quindi se metti il ​​tuo server. * C'è un file in meno da modificare. Inoltre, è necessario modificare httpd.conf perché la riga che include httpd-ssl.conf è commentata per impostazione predefinita. Infine, 365 giorni sono un po 'brevi, potresti voler impostare una data di scadenza più lunga o lo farai di nuovo l'anno prossimo (ho usato 3650)
GordonM,

Se qualcuno ha avuto problemi come me, sarai felice di trovare questo link, che spiega come impostare correttamente virtualhost con virtualhostx per funzionare con ssl yellowrobot.heroku.com/blog/2012/01/22/…
Relequestual

Se è la tua macchina di sviluppo probabilmente vorresti avere la chiave privata senza password: openssl rsa -in server.key -out server.nopass.key
Aldekein
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.