根据this page,我可以根据OpenSSL::X509::DEFAULT_CERT_FILE常量看到HTTPI在哪里查找我的SSL证书:
2.1.5 :008 > OpenSSL::X509::DEFAULT_CERT_FILE
=> "/usr/lib/ssl/cert.pem"我的证书在其他地方,但是那个页面说我可以使用环境变量SSL_CERT_FILE更改Ruby查看的路径。我在.bashrc中做到了:
export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crtRails查找环境变量:
2.1.5 :007 > ENV['SSL_CERT_FILE']
=> "/etc/ssl/certs/ca-certificates.crt"但这对OpenSSL常量没有影响:
2.1.5 :008 > OpenSSL::X509::DEFAULT_CERT_FILE
=> "/usr/lib/ssl/cert.pem"该页面关于设置SSL_CERT_FILE的效果是错误的吗?或者常量永远不会改变,而会影响其他设置?最终,没有找到证书,所以我需要知道它是什么/如何检查/如何设置它。
一等奖是一种类似的方法,其缺省值由环境变量设置,因为我不想对证书的路径进行硬编码。
发布于 2015-07-23 20:44:47
我不知道ruby部分,但从我使用OpenSSL代码的经验来看,我不认为设置环境SSL_CERT_FILE会改变DEFAULT_CERT_FILE的内容。但它仍然会更改OpenSSL查找证书的位置:如果给定了SSL_CERT_FILE,它将采用此值,否则将采用DEFAULT_CERT_FILE中的值。这就是OpenSSL内部的工作方式。
https://stackoverflow.com/questions/31587347
复制相似问题