Ero sivun ”Tekniikka/Apache/2.4” versioiden välillä
(18 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
+ | '''Apache 2.4''' version suuntaa antava esimerkkitiedosto asiakaspään / henkilökortin varmennetunnistukselle. Varmenteen PIN-koodin vaativa ''SSLVerifyClient require'' asetus tulee asettaa sovelluskohtaisesti oikein. | ||
+ | == Varmennekättely == | ||
+ | '''SSLCADNRequestPath''' asetus mod_ssl moduulissa määrittää asiakaspäälle lähetettävän takaajien listan hyväksyttävistä varmenteista. | ||
− | https://serverfault.com/questions/238538/static-page-instead-of-the-default-ssl-error-handshake-failure-alert | + | * https://httpd.apache.org/docs/2.4/mod/mod_ssl.html |
− | https://stackoverflow.com/questions/6110489/apache-custom-error-handling-creating-secure-connection | + | * [[Varmennekättely]] |
+ | |||
+ | == Palvelimen asetukset == | ||
+ | |||
+ | <VirtualHost 88.196.164.221:443> | ||
+ | ServerName digisaatio.fi | ||
+ | DocumentRoot /var/www/html/ | ||
+ | ServerAdmin digisaatio@digisaatio.fi | ||
+ | HostnameLookups On | ||
+ | |||
+ | LogFormat "%a %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | ||
+ | LogFormat "%a %h %l %u %t \"%r\" %>s %b" common | ||
+ | LogFormat "%{Referer}i -> %U" referer | ||
+ | LogFormat "%{User-agent}i" agent | ||
+ | ErrorLog logs/digisaatio.fi-error.ssl.log | ||
+ | CustomLog logs/digisaatio.fi-access.ssl.log combined | ||
+ | |||
+ | DirectoryIndex index.html index.shtml index.php index.py index.html.var | ||
+ | |||
+ | AddHandler php5-script .php | ||
+ | AddType text/html .php | ||
+ | |||
+ | <IfModule mod_ssl.c> | ||
+ | SSLProtocol All -SSLv3 -TLSv1.3 | ||
+ | SSLEngine on | ||
+ | SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-A:ES256-GCM-SHA384:!RC4:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS | ||
+ | SSLProxyEngine off | ||
+ | SSLOptions +OptRenegotiate +StdEnvVars +ExportCertData | ||
+ | |||
+ | SSLCertificateFile /etc/pki/digisaatio.fi/fullchain.cer | ||
+ | SSLCertificateKeyFile /etc/pki/digisaatio.fi/digisaatio.fi.key | ||
+ | SSLCACertificateFile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem | ||
+ | |||
+ | <Location "/mediawiki/index.php" > | ||
+ | <If "%{QUERY_STRING} =~ m#title\=Toiminnot\:Kirjaudu_sis%C3%A4%C3%A4n(.*)#"> | ||
+ | SSLRequireSSL | ||
+ | SSLVerifyClient require | ||
+ | SSLVerifyDepth 2 | ||
+ | SSLRequire %{SSL_CLIENT_I_DN_OU} eq "Valtion kansalaisvarmenteet" | ||
+ | </If> | ||
+ | </Location> | ||
+ | |||
+ | </IfModule> | ||
+ | |||
+ | </VirtualHost> | ||
+ | |||
+ | Vaadittavat Digiviraston CA-varmenteet saa heidän CA-varmenteet sivulta: | ||
+ | * https://dvv.fi/ca-varmenteet | ||
+ | |||
+ | Apachen dokumentaatiota: | ||
+ | * https://httpd.apache.org/docs/2.4/mod/mod_ssl.html | ||
+ | * https://httpd.apache.org/docs/2.4/env.html | ||
+ | |||
+ | == Käyttäjän tiedot == | ||
+ | |||
+ | Taulukossa osa HTTP-yhteyden kansalaisvarmenteelta saatavista tiedoista. Loput selviävät tulostamalla kaikki Apache-prosessin ympäristömuuttujat. Tärkein eli [[SATU]] ei esiinny missään kentässä sellaisenaan vaan sen tulee parsia käyttäjän CN:stä (''Common Name''). Jos kyseessä on ns Organisaatio- tai Sote-kortti, niiden tiedoissa ei näy SATU-tunnus vaan kyseisten korttien omat tunnukset. | ||
+ | |||
+ | {| class="wikitable sortable" style=";" | ||
+ | !tieto | ||
+ | !esimerkki | ||
+ | |- | ||
+ | |SSL_CLIENT_VERIFY | ||
+ | |SUCCESS | ||
+ | |- | ||
+ | |SSL_CLIENT_I_DN_OU | ||
+ | |Valtion kansalaisvarmenteet | ||
+ | |- | ||
+ | |SSL_CLIENT_I_DN_C | ||
+ | |FI | ||
+ | |- | ||
+ | |SSL_CLIENT_I_DN_O | ||
+ | |Vaestorekisterikeskus CA | ||
+ | |- | ||
+ | |SSL_CLIENT_I_DN | ||
+ | |CN=VRK Gov. CA for Citizen Qualified Certificates - G2,OU=Valtion kansalaisvarmenteet,O=Vaestorekisterikeskus CA,C=FI | ||
+ | |- | ||
+ | |SSL_CLIENT_S_DN | ||
+ | |CN=TUOMALA JUHA 10000350X,SN=TUOMALA,GN=JUHA,serialNumber=10000350X,C=FI | ||
+ | |- | ||
+ | |SSL_CLIENT_S_DN_CN | ||
+ | |TUOMALA JUHA 10000350X | ||
+ | |- | ||
+ | |SSL_CLIENT_S_DN_S | ||
+ | |TUOMALA | ||
+ | |- | ||
+ | |SSL_CLIENT_SAN_Email_0 | ||
+ | |juha.tuomala@iki.fi | ||
+ | |} | ||
+ | |||
+ | Jos SATU:a käyttää tietokanta-avaimena, kannattaa ehkä harkita jonkin maakohtaisen prefixin lisäämistä kuten [[SAML/PersonIdentifier|SAML PersonIdentifier attribuutissa]] on tehty, tai miten [[ETSI]] määrittelee maakohtaisen PNO-prefixin. | ||
+ | |||
+ | == Katso myös == | ||
+ | * [[Apache]] | ||
+ | |||
+ | == Aiheesta muualla == | ||
+ | * https://serverfault.com/questions/238538/static-page-instead-of-the-default-ssl-error-handshake-failure-alert | ||
+ | * https://stackoverflow.com/questions/6110489/apache-custom-error-handling-creating-secure-connection | ||
+ | |||
+ | |||
+ | [[Luokka:Tekniikka]] |
Nykyinen versio 3. huhtikuuta 2022 kello 14.43
Apache 2.4 version suuntaa antava esimerkkitiedosto asiakaspään / henkilökortin varmennetunnistukselle. Varmenteen PIN-koodin vaativa SSLVerifyClient require asetus tulee asettaa sovelluskohtaisesti oikein.
Sisällysluettelo
Varmennekättely
SSLCADNRequestPath asetus mod_ssl moduulissa määrittää asiakaspäälle lähetettävän takaajien listan hyväksyttävistä varmenteista.
Palvelimen asetukset
<VirtualHost 88.196.164.221:443> ServerName digisaatio.fi DocumentRoot /var/www/html/ ServerAdmin digisaatio@digisaatio.fi HostnameLookups On LogFormat "%a %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%a %h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent ErrorLog logs/digisaatio.fi-error.ssl.log CustomLog logs/digisaatio.fi-access.ssl.log combined DirectoryIndex index.html index.shtml index.php index.py index.html.var AddHandler php5-script .php AddType text/html .php <IfModule mod_ssl.c> SSLProtocol All -SSLv3 -TLSv1.3 SSLEngine on SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-A:ES256-GCM-SHA384:!RC4:!LOW:!MD5:!aNULL:!eNULL:!3DES:!EXP:!PSK:!SRP:!DSS SSLProxyEngine off SSLOptions +OptRenegotiate +StdEnvVars +ExportCertData SSLCertificateFile /etc/pki/digisaatio.fi/fullchain.cer SSLCertificateKeyFile /etc/pki/digisaatio.fi/digisaatio.fi.key SSLCACertificateFile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem <Location "/mediawiki/index.php" > <If "%{QUERY_STRING} =~ m#title\=Toiminnot\:Kirjaudu_sis%C3%A4%C3%A4n(.*)#"> SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 2 SSLRequire %{SSL_CLIENT_I_DN_OU} eq "Valtion kansalaisvarmenteet" </If> </Location> </IfModule> </VirtualHost>
Vaadittavat Digiviraston CA-varmenteet saa heidän CA-varmenteet sivulta:
Apachen dokumentaatiota:
Käyttäjän tiedot
Taulukossa osa HTTP-yhteyden kansalaisvarmenteelta saatavista tiedoista. Loput selviävät tulostamalla kaikki Apache-prosessin ympäristömuuttujat. Tärkein eli SATU ei esiinny missään kentässä sellaisenaan vaan sen tulee parsia käyttäjän CN:stä (Common Name). Jos kyseessä on ns Organisaatio- tai Sote-kortti, niiden tiedoissa ei näy SATU-tunnus vaan kyseisten korttien omat tunnukset.
tieto | esimerkki |
---|---|
SSL_CLIENT_VERIFY | SUCCESS |
SSL_CLIENT_I_DN_OU | Valtion kansalaisvarmenteet |
SSL_CLIENT_I_DN_C | FI |
SSL_CLIENT_I_DN_O | Vaestorekisterikeskus CA |
SSL_CLIENT_I_DN | CN=VRK Gov. CA for Citizen Qualified Certificates - G2,OU=Valtion kansalaisvarmenteet,O=Vaestorekisterikeskus CA,C=FI |
SSL_CLIENT_S_DN | CN=TUOMALA JUHA 10000350X,SN=TUOMALA,GN=JUHA,serialNumber=10000350X,C=FI |
SSL_CLIENT_S_DN_CN | TUOMALA JUHA 10000350X |
SSL_CLIENT_S_DN_S | TUOMALA |
SSL_CLIENT_SAN_Email_0 | juha.tuomala@iki.fi |
Jos SATU:a käyttää tietokanta-avaimena, kannattaa ehkä harkita jonkin maakohtaisen prefixin lisäämistä kuten SAML PersonIdentifier attribuutissa on tehty, tai miten ETSI määrittelee maakohtaisen PNO-prefixin.