rails https skip ssl

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

user_ssl & verify_mode

uri = URI.parse("https://....")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
#OpenSSL::SSL::VERIFY_PEER
#OpenSSL::SSL::VERIFY_NONE
http.verify_mode = 0
request = Net::HTTP::Post.new(uri.request_uri, 
  { 'Content-Type' => 'application/json;charset=UTF-8', 'X-Auth-Token' => "" }
)
request.body = body.to_json
response = http.request(request)
_body = JSON.parse response.body

verify_mode

# rails c
pry(main)> OpenSSL::SSL::VERIFY_NONE
=> 0
pry(main)> OpenSSL::SSL::VERIFY_PEER
=> 1
pry(main)> OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT
=> 2
pry(main)> OpenSSL::SSL::VERIFY_CLIENT_ONCE
=> 4

# OpenSSL::SSL所有的类
pry(main)> OpenSSL::SSL.constants.select {|c| OpenSSL::SSL.const_get(c).is_a? Class}
=> [:SSLError, :SSLErrorWaitReadable, :SSLErrorWaitWritable, :Session, :SSLContext, :SSLServer, :SSLSocket]

# OpenSSL::SSL所有的子模块
OpenSSL::SSL.constants.select {|c| OpenSSL::SSL.const_get(c).is_a? Module}
=> [:SSLError, :SSLErrorWaitReadable, :SSLErrorWaitWritable, :Session, :SSLContext, :SocketForwarder, :SSLServer, :SSLSocket]

OpenSSL::SSL.constants.grep /VERIFY_/
=> [:VERIFY_FAIL_IF_NO_PEER_CERT, :VERIFY_CLIENT_ONCE, :VERIFY_NONE, :VERIFY_PEER]

openssl的四个验证证书模式分别是

  • SSL_VERIFY_NONE:完全忽略验证证书的结果。当你觉得握手必须完成的话就选用这个选项。其实真正有证书的人很少,尤其在中国。那么如果SSL运用于一些免费的服务比如email的时候我觉得server端最好采用这个模式。

  • SSL_VERIFY_PEER:希望验证对方的证书。不用说这个是最一般的模式了.对client来说如果设置了这样的模式验证server的证书出了任何错误SSL握手都告吹.对server来说,如果设置了这样的模式,client倒不一定要把自己的证书交出去。如果client没有交出证书server自己决定下一步怎么做。

  • SSL_VERIFY_FAIL_IF_NO_PEER_CERT:这是server使用的一种模式在这种模式下server会向client要证书。如果client不给SSL握手告吹。

  • SSL_VERIFY_CLIENT_ONCE这是仅能使用在sslsessionrenegotiation阶段的一种方式。什么是SSLsessionrenegotiation?以后的章节再解释。我英文差点觉得这个词组也很难翻译成相应的中文。以后的文章里我觉得很难直接翻译的单词或词组都会直接用英文写出来。如果不是用这个模式的话,那么在regegotiation的时候client都要把自己的证书送给server,然后做一番分析。这个过程很消耗cpu时间的而这个模式则不需要client在regotiation的时候重复送自己的证书了。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6