Ero sivun ”Tekniikka/Apache/2.4” versioiden välillä

Kohteesta DigiWiki
Siirry navigaatioon Siirry hakuun
 
(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.


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.

Katso myös

Aiheesta muualla