如果我尝试使用openssl s_client连接到APNS本身,同样的情况:如果我明确指定CAfile,但是似乎连接好了,否则不会. PyAPNS告诉我它无法连接到APNS服务器,我只能认为这是同样的原因.
默认情况下,如何让OpenSSL识别Entrust证书颁发机构,而不是每次都明确指定?我在某处失踪了吗?
见OpenSSL verify
documentation:
-CApath directory
A directory of trusted certificates. The certificates should have names of the form: hash.0 or have symbolic links to them of this form
(“hash” is the hashed certificate subject name: see the -hash option
of the x509 utility). Under Unix the c_rehash script will
automatically create symbolic links to a directory of certificates.
这些哈希值将来自每个CA证书的主题DN(因为目的是查找与证书颁发者匹配的主题进行验证的CA证书).您可以使用c_rehash作为记录,或者使用openssl x509 -subject_hash -noout -in cacert.pem获取主题DN的哈希值,并相应地重命名文件/链接.
要验证的证书的直接颁发者可能不是根CA证书:链中可能有一个中间CA证书.您还需要确保使用中间证书.
另外,有两种不同的散列格式(自OpenSSL版本1.0以来有变化),但是值得使用-subject_hash_old和-subject_hash进行链接,尽管默认情况下OpenSSL本身只能使用其新格式.