https://github.com/ruby-ldap/ruby-net-ldap (net-ldap) gem を使用して、Rails アプリでユーザーの信頼性を検証しています。しかし、データを LDAP サーバーに渡す前に、同じ安全なサーバーと通信していることを確認する必要があります。Rubyで証明書を確認できる回避策はありますか
追加の詳細:(私が試したこと)
私に渡される証明書は、実行時に表示されるものと同じです
openssl s_client -showcerts -connect "<host>:<port>" </dev/null 2>/dev/null|openssl x509 -outform PEM
http://www.ldapsoft.com/を使用してクライアントのサーバーに接続しましたセキュリティ > サーバー証明書の管理で提供された証明書ファイルを追加しない限り、セキュリティ証明書が不明であるという警告が表示されます
最初にプレーンルビー(gemなし)で手動で実行しようとしましたが、次のエラーが発生します
test-ssl.rb:23:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)
コード:
cert_store = OpenSSL::X509::Store.new cert_store.add_file "server-wildcard.crt" io = TCPSocket.new("SECURELDAP.MYSITE.EDU","636") ctx = OpenSSL::SSL::SSLContext.new #ctx.cert = OpenSSL::X509::Certificate.new(File.read("server-wildcard.crt")) #ctx.client_ca = OpenSSL::X509::Certificate.new(File.read("server-wildcard.crt")) #ctx.ca_file = "server-wildcard.crt" #ctx.ca_path = "./" ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT ctx.cert_store = cert_store conn = OpenSSL::SSL::SSLSocket.new(io, ctx) conn.connect