class OpenSSL::X509::Store

X509 证书存储用于保存受信任的 CA 证书,用于验证对等证书。

创建有用的证书存储的最简单方法是:

cert_store = OpenSSL::X509::Store.new
cert_store.set_default_paths

这将使用您系统内置的证书。

如果您的系统没有默认的证书集,您可以从 cURL 维护人员提供的 Mozilla CA 证书存储中获取一组提取的证书:curl.haxx.se/docs/caextract.html(您可能希望使用 firefox-db2pem.sh 脚本从本地安装中提取证书,以避免中间人攻击。)

从以上链接下载或生成 cacert.pem 后,您可以从 pem 文件创建证书存储,如下所示:

cert_store = OpenSSL::X509::Store.new
cert_store.add_file 'cacert.pem'

证书存储可以像这样与 SSLSocket 一起使用:

ssl_context = OpenSSL::SSL::SSLContext.new
ssl_context.verify_mode = OpenSSL::SSL::VERIFY_PEER
ssl_context.cert_store = cert_store

tcp_socket = TCPSocket.open 'example.com', 443

ssl_socket = OpenSSL::SSL::SSLSocket.new tcp_socket, ssl_context