TLS-i seadistamine Apache2-ga#
Vihje
Sama kontseptsiooni, mida siin kirjeldatakse, saab kasutada paljude rakenduste puhul, mis kasutavad openssl-i krüpto-backendina. Kontseptsioon seisneb enamasti selles, et (salajase) võtmefaili asendamine PKCS#11 URL-iga, mis viitab võtmele turvamärkil (Nitrokey).
Ettevalmistus#
tagada, et apache2 versioon oleks vähemalt 2.4.42, et tagada korralik
mod_ssl
tugi.aktiveeri
mod_ssl
kasutadesa2enmod ssl
, kui seda veel ei ole tehtud.lisaks on vaja
openssl
jalibengine-pkcs11-openssl
vt PKCS#11 URL.
Apache2 konfigureerimine turvavõtme kasutamiseks#
Põhimõtteliselt tuleb vaid asendada SSLCertificateFile
õige PKCS#11 URL-iga ja kustutada kõik muud viited võtmetele või sertifikaatidele. Näiteks SSLCertificateKeyFile
ei ole enam vajalik.
Näidisdirektiiv võib välja näha selline:
SSLCertificateFile "pkcs11:model=PKCS%2315%20emulated;manufacturer=www.CardContact.de;serial=DENK0123123;token=UserPIN%20%28SmartCard-HSM%29;id%01"
Korraliku PKCS#11-URL-i saab ekstraheerida, nagu on dokumenteeritud dokumendis PKCS#11 URL-i genereerimine.
Asetage direktiiv kindlasti VirtualHost konfiguratsiooni sisse.
Anda PIN-kood Apache2 käivitamise ajal#
Kasutades eelnevalt kirjeldatud meetodit, küsib Apache2 igal käivitamisel User-PIN-i, seega põhimõtteliselt keeldub batch-käivitamisest. Apache2 annab teise direktiivi PIN-koodi esitamiseks käivitamisel.
SSLPassPhraseDialog "|/bin/echo 123456"
Apache2 ootab pärast |
käivitatavat faili, mis käivitatakse käivitamise ajal ja selle’väljundit (oodatakse tagumist newline’i) kasutatakse PIN-koodina. Ilmselt saab selle meetodi abil rakendada suvalisi keerulisi PIN-koodi otsingumeetodeid. Kuigi siin on valitud triviaalne näide, et lihtsalt echo
PIN-koodi käivitamise ajal.
Lisaks SSLPassPhraseDialog
on globaalne direktiiv, seega tuleb see paigutada Apache2 globaalsesse konfiguratsiooni ulatusse.
Hoiatus
See näidatud näide ei ole turvaline mehhanism PIN-koodi edastamiseks, kuna see kirjutatakse lihtsas tekstis teie konfiguratsiooni sisse.
Vaata Apache2 mod_ssl documentation selle funktsiooni kohta lisateavet.
Täielik Apache2 konfiguratsiooni näide#
Täielik Apache2 (VirtualHost<x>
) konfiguratsioonilõik võiks välja näha selline:
<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>