Jak ustawić dostęp do strony www na podstawie certyfikatu ? (działa z Androidem)
Całość realizowana na Apache2.
Na początek generujemy certyfikaty:
Generowanie CA:
openssl genrsa -out ca.key 2048 openssl req -new -key ca.key -out ca.csr openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
Generowanie Certyfikatu dla klienta:
openssl genrsa -out client.key 2048 openssl req -new -key client.key -out client.csr
Podpisywanie Certyfikatu Klienta certyfikatem CA:
openssl x509 -req -days 365 -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out public_client.crt
Certyfikat końcowy podpisany przez nasze ca i zabezpieczony hasłem:
openssl pkcs12 -export -clcerts -in public_client.crt -inkey client.key -out public_client.p12
W pliku konfiguracyjnym ssl wskazujemy gdzie leży nasze CA.
I włączamy weryfikacje certyfikatu po stronie serwera czyli wrzucamy poniższe linie do sekcji naszego virtualhosta:
SSLCACertificateFile /etc/ssl/private/ca.crt SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 10
Następnie instalujemy w przeglądarce końcowy certyfikat „public_client.p12”
i sprawdzamy czy mamy dostęp do zabezpieczonej strony.