/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Digital Signatur og php ?
Fra : Peter Larsen


Dato : 09-12-04 13:31

Nogen der har eksempler de vil dele ud af?

--
regards, Peter Larsen

 
 
Peter Lind Damkjær (10-12-2004)
Kommentar
Fra : Peter Lind Damkjær


Dato : 10-12-04 11:16

Peter Larsen <mail@czar.dk> skrev:
>Nogen der har eksempler de vil dele ud af?
>
>--
>regards, Peter Larsen

Under antagelse af at dit setup er
- Apache
- mod_ssl
- php 3 eller højere

konfigureret med
- klientautentifikation
- opsat med TDC OCES CA rod som trusted root

<snip>
// Retrieve Subject DN from client certificate
if(isset($_SERVER['SSL_CLIENT_S_DN']))
$subjectDN = $_SERVER['SSL_CLIENT_S_DN'];
else
$subjectDN = '';

// Retrieve Issuer DN from client certificate
if(isset($_SERVER['SSL_CLIENT_I_DN']))
$issuerDN = $_SERVER['SSL_CLIENT_I_DN'];
else
$issuerDN = '';

// Retrieve certificate serno. from client certificate
if(isset($_SERVER['SSL_CLIENT_M_SERIAL']))
$certSN = $_SERVER['SSL_CLIENT_M_SERIAL'];
else
$certSN = '';


// Retrieve Subject commonName from client certificate
//
// Note:
// Better handling of danish characters than SSL_CLIENT_S_DN
if(isset($_SERVER['SSL_CLIENT_S_DN_CN']))
$subjectCN = $_SERVER['SSL_CLIENT_S_DN_CN'];
else
$subjectCN = '';

// See more options of information to retreive at
// http://www.modssl.org/docs/2.8/ssl_reference.html#ToC25

echo('Client Subject DN:' . $subjectDN . '<br>');
echo('Client Issuer DN:' . $issuerDN . '<br>');
echo('Client Cert Serno.:' . $certSN . '<br>');
</snip>

Såååååh, der skal altså ikke laves ret meget ud over
konfigurationen af webserveren, og her er www.modssl.org din hjælp.

God arbejdslyst
Peter Lind Damkjær



Peter Larsen (10-12-2004)
Kommentar
Fra : Peter Larsen


Dato : 10-12-04 21:12

slet V2LYM wrote:
> echo('Client Subject DN:' . $subjectDN . '<br>');
> echo('Client Issuer DN:' . $issuerDN . '<br>');
> echo('Client Cert Serno.:' . $certSN . '<br>');

ser fint ud..

hvad bør jeg identificere en bruger på? Cert Serno ?

eller en combi af Subject DN/serialNumber og Cert Serno.. eller kun
Subject DN/serialNumber ?


--
regards, Peter Larsen

Peter Lind Damkjær (11-12-2004)
Kommentar
Fra : Peter Lind Damkjær


Dato : 11-12-04 11:38

Peter Larsen <mail@czar.dk> skrev:

>hvad bør jeg identificere en bruger på? Cert Serno ?
>
>eller en combi af Subject DN/serialNumber og Cert Serno.. eller
kun
>Subject DN/serialNumber ?
>

ser fint ud..

hvad bør jeg identificere en bruger på? Cert Serno ?

eller en combi af Subject DN/serialNumber og Cert Serno.. eller kun
Subject DN/serialNumber ?


----

I subject DN for OCES digital signatur findes der et såkaldt
serialNumber. HUSK AT DETTE IKKE ER DET SAMME SOM CERTIFIKATETS
SERIENUMMER!

Certifikatets serienummer ændres ved fornyelse/genudstedelse
Subject serialNumber bevares ved fornyelse/genudstedelse*)

*) kan ændres under helt særlige forhold.

Derfor er Subject serialNumber det rigtige valg. (Hvis du vil
understøtte flere udstedere skal du kombinere det med issuer DN).

For personcertifikater er formatet:
PID:xxxx-xxxx-x-xxxxxx...x

For medarbejdercertifikater er formatet:
CVR:yyyyyyyy-RID:xxxxxx...x

For virksomhedscertifikater er formatet:
CVR:yyyyyyyy-UID:xxxxxx...x

PS: Subject serialNumber må max. have længde 64.

Nedenstående PHP-eksempel uddrager PID fra Subject DN hvis det
findes. Husk at checke at det ikke er et medarbejder- eller
virksomhedscertifikat, hvor xxxxxx...x indeholder "PID ...".

<snip>
// extract PID
if($successVal) {
$subjectDN = $_SERVER['SSL_CLIENT_S_DN']);
$pidPos = strpos($subjectDN, "PID:");
if($pidPos === false) {
$pid = '';
} else {
$pidLength = strspn($subjectDN, "1234567890PID:-",$pidPos);
$pid = substr($subjectDN,$pidPos,$pidLength);
}
}
</snip>

Vh
Peter Lind Damkjær


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste