1. Luo ensin juuriavain salasanalla
openssl genrsa -des3 -out rootCA.key 2048
2. Luo juurisertifikaatti (root certificate) äsken luodulla avaimella
openssl req -x509 -new -nodes -key rootCA.key -days 1024 -out rootCA.crt
3. Luo palvelimen avain (ilman salasanaa, jotta Apache käynnistyy automaattisesti)
openssl genrsa -out localhost.key 2048
4. Luo asetustiedosto san.cfg
vim san.cfg
5. Kopioi asetustiedostoon rivit:
default_bits = 2048 distinguished_name = dn x509_extensions = san req_extensions = san extensions = san [dn] countryName = Country Name (2 letter code) stateOrProvinceName = State or Province Name (full name) localityName = Locality Name (eg, city) organizationName = Organization Name (eg, company) commonName = Common Name (e.g. server FQDN or YOUR name) [san] subjectAltName = @alt_names [alt_names] DNS.1 = localhost DNS.2 = www.localhost
Muuta DNS.1 ja DNS.2 -rivit, jos haluat saada SSL-sertifikaatin aliverkkotunnukselle.
6. Luo varmennepyyntö palvelimelle (certificate request):
openssl req -new -key localhost.key -out localhost.csr -config san.cfg
7. Allekirjoita varmennepyyntö juuriavaimella ja -sertifikaatilla:
openssl x509 -req -in localhost.csr -CA rootCA.crt -CAkey rootCA.key \
-CAcreateserial -out localhost.crt -days 500 -extfile san.cfg
8. Muokkaa Apachen asetustiedostoa
sudo vim /etc/httpd/vhosts.d/000-default.conf
9. Lisää asetustiedostoon VirtualHost portille 443
<VirtualHost *:80>
DocumentRoot "/home/teppo/public_html"
ServerName localhost
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/home/teppo/public_html"
ServerName localhost
SSLEngine on
SSLCertificateFile /etc/ssl/certs/localhost.crt
SSLCertificateKeyFile /etc/ssl/private/localhost.key
# Enable forward secrecy
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder On
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4"
</VirtualHost>
missä /home/teppo/public_html on hakemisto, jonka alta nettisivut löytyvät.
10. Kopioi palvelimen avain ja sertifikaatti talteen Apachea varten
sudo cp localhost.key /etc/ssl/private/localhost.key
sudo cp localhost.crt /etc/ssl/certs/localhost.crt
11. Asenna juurisertifikaatti käyttöjärjestelmään (arch)
sudo trust anchor rootCA.crt
12. Käynnistä Apache uudelleen
sudo systemctl restart httpd
13. Avaa nettiselain (esim Chrome tai Firefox) ja kirjoita osoiteriville https://localhost
Jos kaikki meni oikein, niin näet osoitepalkissa lukon kuvakkeen merkiksi siitä, että selain on hyväksynyt sertifikaatit.
Lähteet:
Lisäys 23.11.2022: Jamie Nguyenin blogista löytyy laajempi selvitys sertifikaattien perustamisesta. Jamien ohjeilla saat käyttöön myös keskitason varmenteet, joiden avulla voit hallinnoida usean palvelimen verkkoa.
