Допустим, у вас есть сервер A и клиент B.
Чтобы настроить сервер A для использования механизма взаимной аутентификации TLS, на вашем сервере должна быть пара ключей и «ссылка» для аутентификации вашего клиента Bи обратно.
Теперь для тестирования вы можете создать CA (центр сертификации) для подписи сертификата с помощью serverA с помощью следующей команды:
[1] ~# openssl genrsa -out caServerA.key 1024
[2] ~# openssl req -new -key caServerA.key -out caServerA.csr
[3] ~# openssl ca -selfsign -keyfile caServerA.key -in caServer.csr -out caServerA.crt
Создать пару ключей для сервера A и подписать ее с помощью CAранее созданный:
[1] ~# openssl genrsa -out serverA.key 1024
[2] ~# openssl req -new -key serverA.key -out serverA.csr
[3] ~# openssl ca -keyfile caServerA.key -cert caServerA.csr -in serverA.csr -out serverA.crt
Повторите тот же процесс для клиентской стороны.И, наконец, у вас должно быть что-то вроде: clientB.crt, clientB.key, caClientB.crt.
Предположим, что ваш сервер - apache2, поэтому вы должны сконфигурировать ваш https-штуку следующим образом:
[....]
SSLEngine on
SSLCertificateFile [path_to_your_certificate]/serverA.crt
SSLCertificateKeyFile [path_to_your_certificate]/serverA.key
# this because you have to trust all clients that have certificates signed by caClientB
SSLCACertificateFile [path_to_your_certificate]/caClientB.crt
# this will force server to verify client's identity/certificate
SSLVerifyClient require
[....]
Перезагрузите сервер, и он готов аутентифицировать ваших клиентов.
Для тестирования проще подключиться к серверу через веб-браузер.Но перед этим вы должны экспортировать свою пару ключей в формате PKCS12 с помощью этой команды:
openssl pkcs12 -export -in clientB.crt -inkey clientB.key -out clientB.pkcs12
Теперь вы можете импортировать этот файл в «систему управления ключами» вашего предпочтительного браузера.Подключитесь к вашему серверу, и это будет работать.
Вы также можете активировать Loglevel в режиме отладки, чтобы получить более подробную информацию.
надеюсь, это поможет ...