2013-05-20 10 views
9

Chcemy użyć dwukierunkowego uwierzytelniania certyfikatów przy użyciu otwartego protokołu SSL.Weryfikacja przychodzącego protokołu SSL przy użyciu serwera OpenSSL S_Server

Kiedy otworzymy s_server następująco, klient jest w stanie połączyć się z serwerem:

openssl s_server -accept 12345 -cert our-cert.pem 

(nasza-cert.pem jest nasz certyfikat.)

To działa prawidłowo. Jednak moje wymagania to:

  1. Sprawdź, czy certyfikat jest ważny przychodzące z zaufanych CA i
  2. Sprawdź, czy nazwa zwyczajowa to, czego oczekujemy, że będzie.

Próbowałem to:

openssl s_server -accept 12345 -cert our-cert.pem -CApath /etc/ssl/certs/ 

To pozwala klientowi na połączenie. Ale moje pytania to:

  1. W jaki sposób mogę się upewnić, że walidacja przychodzących SSL jest ważna i wydana przez urząd certyfikacji?
  2. W jaki sposób mogę sprawdzić poprawność nazwy pospolitej?

Odpowiedz

6

Dla serwera należy dodać opcję "-Verify", aby zmusić klienta do dostarczenia certyfikatu. Głębokość jest maksymalną długością łańcucha certyfikatów klienta.

To powinno zająć się pytaniem # 1.

Dla # 2, nie jestem pewien, czy istnieje sposób ograniczenia nazwy pospolitej za pomocą tych poleceń OpenSSL.

można znaleźć w dokumentacji OpenSSL dla serwera/klienta komendy tutaj:

s_server

s_client

4

Aby przetestować CA użyj:

/usr/local/ssl/bin/openssl s_server -accept 7569 -cert /opt/GCTI/cert/host1_cert.pem -CAfile /opt/GCTI/cert/ca_cert.pem -key /opt/GCTI/cert/host1_priv_key.pem    

-cert is the public key file for this host 
-key is the private key file for this host 
-CAfile is the CA file, needed for self signed certificate 
-port is the port number to open up 

To otworzy port nasłuchujący 7569, który będzie akceptował połączenia TLS z określonym certyfikatem.

czy CA nie jest ważne to ostatnia linia będzie wyglądać tak

Verify return code: 21 (unable to verify the first certificate) 

Aby połączyć się z tym serwerem, pełne końca do końca testu (nie naprawdę na pytanie)

openssl s_client -showcerts -connect host1:7569 -CAfile /opt/GCTI/cert/ca_cert.pem 

zamień host1 na rzeczywisty host. To sprawdzi, czy usługa TLS jest ważna i czy działa certyfikat podpisany przez ten sam urząd certyfikacji.

Powiązane problemy