TLS-asetus Apache2:n kanssa¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
⨯ inactive |
Vihje
The very same concept as descriped here can be used for many applications using openssl as crypto-backend. The concept mostly boils down to: replace (secret) key-file with PKCS#11 URL referencing a key on a security token (Nitrokey).
Valmistelu¶
varmista, että apache2-versio on vähintään 2.4.42, jotta
mod_ssl-tuki toimii kunnolla.aktivoi
mod_sslkäyttämälläa2enmod ssl, jos sitä ei ole jo tehty.lisäksi tarvitaan
openssljalibengine-pkcs11-opensslkatso 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>