проверить SSL-сертификат для аутентификации сервисов, обращающихся к нашему частному API? - PullRequest
1 голос
/ 11 марта 2011


У нас есть веб-сервис и 3 внутренних клиента, которые обращаются к нему.
Все они размещены в одном домене, и мы используем сертификат ssl * .ourdomain.com для всех из них.

Итак, мы получили:

Мне было интересно, можем ли мы проверить подлинность запросов (в API) просто проверяя сертификат.Таким образом, мы можем отбросить обычную аутентификацию.

Как вы думаете, это выполнимо и безопасно?Как ?мы на рельсах 3.0.5 / ruby ​​1.9.2

1 Ответ

1 голос
/ 11 марта 2011

кто контролирует ваше SSL-завершение в вашей среде? если вы используете EventMachine, вы можете использовать внутри post_init

def post_init
    start_tls :private_key_file => 'mycert', :cert_chain_file => 'mychain', :verify_peer => true 
end

и затем в обратном вызове вы можете проверить действительность сертификата

  def ssl_verify_peer(cert)
    #TODO: check if the client cert is valid
  end

с точки зрения безопасности можно проверить действительность ssl-сертификата на стороне клиента. Вы просто должны держать это в секрете. если кто-то украдет этот файл, аутентификация будет обойдена. Вот почему это хорошая практика - использовать сертификат + пароль (двухфакторное подтверждение).

С уважением.

...