Certificati SSL
Da Fabwiki.
Creazione dei certificati SSL
Questo documento spiega come creare i certificati SSL per il proprio server Apache.
Cosa ci serve ?
Naturalmente il webserver apache e openssl
Come si installa ?
La prima cosa da fare è generare una chiave privata, per crearla utilizziamo il comando:
openssl genrsa -des3 -out server.key 1024
(potete cambiare "server.key" con qualunque nome, per esempio nel mio caso, fabreg.key)
L' output generato sarà:
Generating RSA private key, 1024 bit long modulus .........................................................++++++ ........++++++ e is 65537 (0x10001) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase:
Inserite le password richieste e continuate.
Ora dobbiamo creare il certificato vero e proprio, per farlo useremo il comando
openssl req -new -key server.key -out server.csr
A video vedremo:
Country Name (2 letter code) [GB]:IT State or Province Name (full name) [Berkshire]:Italy Locality Name (eg, city) [Newbury]:Milan Organization Name (eg, company) [My Company Ltd]:fabreg.it Organizational Unit Name (eg, section) []:Sito di fabreg Common Name (eg, your name or your server's hostname) []:fabreg.it Email Address []:nospam@fabreg.it Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Potermmo anche decidere di fermarci ora, ma se cosi' decidessimo ogni volta che il webserver apache verrà avviato, verrà richiesta una password. Per ovviare questo "inconveniente" possiamo procedere come segue:
cp server.key server.key.org openssl rsa -in server.key.org -out server.key
dovremmo visualizzare:
-rw-r--r-- 1 root root 745 Jun 29 12:19 server.csr -rw-r--r-- 1 root root 891 Jun 29 13:22 server.key -rw-r--r-- 1 root root 963 Jun 29 13:22 server.key.org
A questo punto non ci resta che dare il comando:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
che visualizzerà
Signature ok subject=/C=CH/ST=Bern/L=Oberdiessbach/O=Akadia AG/OU=Information Technology/CN=public.akadia.com/Email=martin.zahn@akadia.com Getting Private key
Benissimo, abbiamo creato il nostro certificato (con valità di 365 giorni, se desiderate crearne uno che duri di piu', basta cambiare il parametro -days <valore_in_giorni>). Adesso dobbiamo inserirlo nel file http.conf (file di configurazione di apache) nelle corrispettive voci SSLCertificateFile e SSLCertificateKeyFile (il primo per il certificato, il secondo per la chiave). Assicuriamoci inoltre che SSLEngine sia ad on.
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Riavviamo il nostro server apache e il gioco è fatto :-)
--Fabrizio 14:53, 1 Dic 2006 (CET)
