TLS-asetus Apache2:n kanssa#
⨯ |
⨯ |
⨯ |
⨯ |
✓ |
⨯ |
⨯ |
⨯ |
Vihje
Samaa konseptia, joka on kuvattu tässä, voidaan käyttää monissa sovelluksissa, jotka käyttävät openssl:ää krypto-backendinä. Konsepti on lähinnä seuraava: korvaa (salainen) avaintiedosto PKCS#11-URL-osoitteella, joka viittaa avaimeen tietoturvatunnisteessa (Nitrokey).
Valmistelu#
varmista, että apache2-versio on vähintään 2.4.42, jotta
mod_ssl
-tuki toimii kunnolla.aktivoi
mod_ssl
käyttämälläa2enmod ssl
, jos sitä ei ole jo tehty.lisäksi tarvitaan
openssl
jalibengine-pkcs11-openssl
katso PKCS#11 URL.
Apache2:n määrittäminen käyttämään suojausavainta#
Periaatteessa ainoa tehtävä on korvata SSLCertificateFile
oikealla PKCS#11-URL-osoitteella ja poistaa kaikki muut viittaukset avaimiin tai varmenteisiin. Esimerkiksi SSLCertificateKeyFile
ei enää tarvita.
Esimerkkidirektiivi voi näyttää tältä:
SSLCertificateFile "pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0123123;token=UserPIN%20%28SmartCard-HSM%29;id%01"
Oikea PKCS#11-URL-osoite voidaan poimia asiakirjassa PKCS#11 URL Generation kuvatulla tavalla.
Muista sijoittaa direktiivi VirtualHost-konfiguraation sisään.
Anna PIN-koodi Apache2:n käynnistyksen aikana#
Käyttämällä aiemmin kuvattua menetelmää Apache2 kysyy User-PIN-tunnusta jokaisella käynnistyskerralla, jolloin se periaatteessa kieltäytyy eräajona tapahtuvasta käynnistyksestä. Apache2 tarjoaa toisen direktiivin PIN-koodin antamiseksi käynnistyksen aikana.
SSLPassPhraseDialog "|/bin/echo 123456"
Apache2 odottaa |
jälkeen suoritettavaa tiedostoa, joka suoritetaan käynnistyksen aikana ja sen’ulostuloa (odotetaan uutta riviä perässä) käytetään PIN-koodina. Ilmeisesti mielivaltaisia monimutkaisia PIN-koodin hakumenetelmiä voidaan toteuttaa tällä lähestymistavalla. Vaikka tässä on valittu triviaali esimerkki, jossa PIN-koodi saadaan vain echo
käynnistyksen aikana.
Lisäksi SSLPassPhraseDialog
on globaali direktiivi, joten se on sijoitettava Apache2:n globaaliin konfiguraatioalueeseen.
Varoitus
Tämä esimerkki ei ole turvallinen mekanismi PIN-koodin välittämiseen, koska se kirjoitetaan selvänä tekstinä konfiguraatiosi sisälle.
Katso Apache2 mod_ssl documentation lisätietoja tästä ominaisuudesta.
Täydellinen Apache2-konfiguraatioesimerkki#
Täydellinen Apache2:n (VirtualHost
) konfiguraatiopätkä voi näyttää tältä:
<IfModule mod_ssl.c>
SSLPassPhraseDialog "|/bin/echo 123456"
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile "pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0105076;token=UserPIN%20%28SmartCard-HSM%29"
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>