的OpenSSL :: SSL :: VERIFY_PEER = OpenSSL的:: SSL :: VERIFY_NONE
但我有與沒有運氣。
這似乎沒有任何意義。看來您正在將VERIFY_NONE
分配到VERIFY_PEER
。這些是OpenSSL常量,而不是變量。所以你不能那樣做。
這些是OpenSSL上下文選項。按照Ruby docs,你需要與verify_mode
設置它們:
verify_mode
會話驗證模式。
有效模式VERIFY_NONE
,VERIFY_PEER
,VERIFY_CLIENT_ONCE
,VERIFY_FAIL_IF_NO_PEER_CERT
和OpenSSL的SSL ::
正是在這你可以改變發送程序,其中一個答覆提到定義一個不同的客戶你好。在ruby腳本中可以做到這一點嗎?
有兩種類型的ClientHello
秒。一個是舊的SSL ClientHello
,另一個是TLS ClientHello
。由於原始SSL規範沒有版本信息,因此很難判斷哪些版本正在發送。據我所知,一個特定的字節被檢查以確定哪個字節被使用。有些客戶端和服務器仍然無法處理好。
據我所知,Ruby有幾個OpenSSL方法的選項。從Ruby docs:
new => ctx
new(:TLSv1) => ctx
new("SSLv23_client") => ctx
要發送一個ClientHello
相當於OpenSSL的SSLv23_method
。這提供了最大的兼容性。但是,它啓用SSLv2協議及更高版本(SSLv2,SSLv3,TLS1.0,TLS1.1和TLS1.2)
要刪除破損,脆弱和受傷的協議(如SSLv2和SSLv3),必須設置一些上下文選項。不幸的是,Ruby似乎沒有提供OpenSSL::SSL::SSL_OP_NO_SSLv2
和其他上下文選項(或者我找不到它們)。見How to set TLS context options in Ruby (like OpenSSL::SSL::SSL_OP_NO_SSLv2)。
所以我認爲你現在被卡住了。
來源
2014-03-25 21:11:39
jww
你是什麼意思,「設置客戶端你好」? – jww