擅长:python、mysql、java
<p>因此,根据你对我第一个答案的评论,我决定提供另一个可能适合你的解决方案。创建您自己的CA证书和密钥。然后,在您的同级中,告诉M2Crypto只接受由这个CA签名的证书(请参阅这个旧的stackoverflow问题,以供api使用:<a href="https://stackoverflow.com/questions/1848160/what-is-the-difference-between-m2cryptos-set-client-ca-list-from-file-and-load/1849277#1849277">What is the difference between M2Crypto's set_client_CA_list_from_file() and load_verify_info() and when would you use each?</a>)。在</p>
<p>然后在脚本的早期执行以下操作:</p>
<pre><code>from M2Crypto import SSL
SSL.Connection.clientPostConnectionCheck = None
</code></pre>
<p>或者,如果您需要能够建立其他类型的SSL连接,请查看是否可以控制SSL连接对象并使用适当的检查器调用它们的set_post_connection_check_callback()。在</p>
<p>在此之后,只要对等方的证书仅与您的CA签署,您的对等方就应该接受任何其他对等方。在</p>
<p>如果你能想到在连接后检查中可以验证的任何额外信息,你可以将这些信息放入证书中(也许在commonName中),并编写自己的检查器来使用(而不是上面没有)。在</p>