【问题标题】:What is the difference between M2Crypto's set_client_CA_list_from_file() and load_verify_info() and when would you use each?M2Crypto 的 set_client_CA_list_from_file() 和 load_verify_info() 有什么区别,你什么时候使用它们?
【发布时间】:2009-12-04 16:39:06
【问题描述】:

M2Crypto library 在其SSL.Context object 上有一些与 CA 相关的功能,但文档并不清楚何时使用某些功能以及为什么。事实上,几乎所有的文档都是“将 CA 证书加载到上下文中”,因此它们似乎都有可能做同样的事情。

severalexamples同时使用set_client_CA_list_from_file()load_verify_info(),但也有其他类似的功能,如load_client_ca()load_verify_locations()

我正在编写客户端和服务器部分。我应该使用哪些功能,为什么?他们具体是做什么的?

编辑:

查看我看到的代码:

# Deprecated.
load_client_CA = load_client_ca = set_client_CA_list_from_file

# Deprecated.
load_verify_info = load_verify_locations

所以这有点帮助。这将我们归结为两个函数:set_client_CA_list_from_file()load_verify_locations()。但我还是分不清这两者的区别。

【问题讨论】:

    标签: python m2crypto


    【解决方案1】:

    如果您的服务器要求客户端提供证书,它可以通过指定调用set_client_CA_list_from_file 的颁发者来限制谁是客户端证书的有效颁发者。这实际上非常罕见。

    客户端通过调用load_verify_locations 指定谁是有效的服务器证书颁发者。几乎所有客户都应该这样做。

    客户端和服务器都可以调用load_cert来设置自己的证书。服务器应该几乎总是这样做。仅当服务器要求客户端提供证书时,客户端才应该这样做。

    我建议您选择 John Viega、Matt Messier 和 Pravir Chandra 所著的OpenSSL 网络安全,ISBN 059600270X,它可以更详细地阐明这些问题。

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 1970-01-01
      • 2016-11-21
      • 2013-04-17
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多