Tekniikka/Mediawiki/pre1.27
Mediawiki on Wikipediaa varten kehitetty wiki-ohjelmisto ja suosituin eri wiki-variaatioista.
Sisällysluettelo
Varmennetunnistus
Apache
Rakennettaessa asiakaspään varmennetta hyödyntävää tunnistusta, tarvitsee erotella normaali sivujen käyttö pelkästä tunnistustapahtumasta koska älykortin lukeminen jokaisella sivunlatauksella ei ole tarpeellista eikä mielekästä sen hitauden takia. Mediawikissä tarvittavia virtuaaliserverin lokaatiopohjaisia asetuksia ei voi
Mediawiki käyttää suurimmaksi osaksi index.php scriptiä ja kaikkia wikin sivuja osoitetaan sen title= argumenteilla. Apache web-palvelin on hieman hankala käsitellessä näitä urleja, sillä se käsittelee linkin REQUEST_URI-osan ja sen kysymysmerkin (?) jälkeisen osan, QUERY_STRING-kyselyn erikseen. Tämä pätee myös erikoissivuihin (title=Toiminnot:Kirjaudu_sisään, title=Spaceial:UserLogin) joissa siis tulisi vaatia käyttäjän varmennetta SSLRequireSSL ja SSLVerifyClient require SSL-asetuksilla.
<VirtualHost 212.16.100.42:80> AddHandler php5-script .php AddType text/html .php DirectoryIndex index.html index.shtml index.php RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu RewriteRule ^(.*)$ https://%{SERVER_NAME}/mediawiki/index.php?title=Toiminnot:Kirjaudu_sisään&returnto=Etusivu [R] ScriptAlias /wiki /srv/www/digisaatio.fi/mediawiki/index.php </VirtualHost> <VirtualHost 212.16.100.42:443> DirectoryIndex index.html index.shtml index.php AddHandler php5-script .php AddType text/html .php RewriteEngine on RewriteCond %{REQUEST_URI} /wiki/Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n RewriteRule /wiki/Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n /auth/fineid [PT,QSA] RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu RewriteRule /mediawiki/index.php /auth/fineid [PT,QSA] RewriteCond %{REQUEST_URI} /mediawiki/index.php RewriteCond %{QUERY_STRING} title=Toiminnot:Kirjaudu_sis%C3%A4%C3%A4n&returnto=Etusivu&action=submitlogin&type=login&returnto=Etusivu RewriteRule /mediawiki/index.php /auth/fineid [PT,QSA] ScriptAlias "/auth/fineid" /srv/www/digisaatio.fi/mediawiki/index.php SSLEngine on SSLProxyEngine off SSLProtocol All SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM:+SSLv3 SSLOptions +OptRenegotiate +StdEnvVars +ExportCertData SSLCertificateFile /srv/sys/pki/digisaatio.fi.cert.pem SSLCertificateKeyFile /srv/sys/pki/digisaatio.fi.key.pwdless.pem SSLCACertificatePath /srv/sys/pki/ca <Location "/auth/fineid" > SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 2 SSLRequire %{SSL_CLIENT_I_DN_OU} eq "Valtion kansalaisvarmenteet" </Location> </VirtualHost>
LocalSettings.php
require_once( "$IP/extensions/SSLAuthentication/SSLAuthPlugin.php" ); # Käytä käyttäjän varmenteen tietoja tunnuksen alustamiseksi. $ssl_map_info = true; # Real Name # Käyttäjän oletus nimi hänen metatiedoissa. Käyttäjä voi myöhemmin itse muuttaa tätä. if ( isset($_SERVER['SSL_CLIENT_S_DN_CN']) and isset($_SERVER['SSL_CLIENT_S_DN_S'] ) ) { $ssl_RN = $_SERVER['SSL_CLIENT_S_DN_G'] . " " . $_SERVER['SSL_CLIENT_S_DN_S']; } # User Name # Käyttäjän käyttäjätunnus, joko koko Common Name, esim: TUOMALA JUHA 10000350X # tai sen viimeinen osa, SATU-tunnus, esim: 10000350X if (isset($_SERVER['SSL_CLIENT_S_DN_CN'])) { # $ssl_UN = $_SERVER['SSL_CLIENT_S_DN_CN']; $ssl_UN = end( explode(" ", $_SERVER['SSL_CLIENT_S_DN_CN']) ); }; SSLAuthSetup();