小编Set*_*ser的帖子

OpenSSL :: SSL :: SSLContext SNI servername_cb不工作

正如在OpenSSL :: X509 ::证书显示错误域证书中所引用的那样,我需要使用TLSv1或更高版本以及 服务器名称指示扩展.

即使使用ssl_versionservername_cb设置SSLContext,我仍然得到错误的证书myproair.com.

  begin 
    timeout(1) do
      tcp_client = TCPSocket.new("#{instance["domain"]}", 443)
      ssl_context = OpenSSL::SSL::SSLContext.new()
      ssl_context.ssl_version = :TLSv1
      ssl_context.servername_cb = "https://#{instance["domain"]}"
      ssl_client = OpenSSL::SSL::SSLSocket.new(tcp_client, ssl_context)
      ssl_client.connect
      cert = OpenSSL::X509::Certificate.new(ssl_client.peer_cert)
      ssl_client.sysclose
      tcp_client.close
      #http://ruby-doc.org/stdlib-2.0/libdoc/openssl/rdoc/OpenSSL/X509/Certificate.html
      date = Date.parse((cert.not_after).to_s)
      row.push("#{date.strftime('%F')} #{cert.signature_algorithm} #{cert.subject.to_a.select{|name, _, _| name == 'CN' }.first[1]}".downcase.ljust(57))
    end
  rescue SocketError
    row.push("down".ljust(57))
  rescue Errno::ECONNREFUSED
    row.push("connection refused".ljust(57))
  rescue Errno::ECONNRESET
    row.push("connection reset".ljust(57))
  rescue Timeout::Error
    row.push("no 443 listener".ljust(57))
  rescue OpenSSL::SSL::SSLError
    row.push("bad certificate - ssl …
Run Code Online (Sandbox Code Playgroud)

ruby macos openssl sni server-name

4
推荐指数
1
解决办法
931
查看次数

PHP cURL SSL 密码套件顺序

Cloudflare 使用 ECDHE_ECDSA 和 AES_128_GCM 密码套件作为其 https 证书。使用 PHP cURL 时,您可以指定密码套件:

curl_setopt($curl, CURLOPT_SSL_CIPHER_LIST, 'ecdhe_ecdsa_aes_128_sha');
Run Code Online (Sandbox Code Playgroud)

但是,如果 cURL 请求请求除 ecdhe_ecdsa_aes_128_sha 之外的其他内容,这对我没有帮助。

设置了以下 Apache 配置,但 PHP cURL 似乎不尊重这一点:

SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
Run Code Online (Sandbox Code Playgroud)

有没有办法为 PHP cURL 指定密码套件顺序?

环境信息:

[vagrant@devopsgroup ~]$ php -i | grep SSL
SSL => Yes
SSL Version => NSS/3.15.4
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.0.1e-fips 11 Feb 2013
OpenSSL Header Version => OpenSSL 1.0.1e-fips 11 Feb 2013
Native OpenSSL support => enabled
Run Code Online (Sandbox Code Playgroud)

php apache ssl curl

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache ×1

curl ×1

macos ×1

openssl ×1

php ×1

ruby ×1

server-name ×1

sni ×1

ssl ×1