从 python 中的文件中提取所有证书

Extract all the certificates from a file in python

我是 python 的新手。我有一个包含可信 CA 证书的文件。文件可以有任意数量的这种格式的证书:

-----BEGIN CERTIFICATE----- sfsdfsfdsafs -----END CERTIFICATE-----

-----BEGIN CERTIFICATE----- MCUwIwYIKwYBBQUHA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- OmyeEZm0CK6ZZZpAp -----END CERTIFICATE-----

我想读取所有的证书并将其存储在我的数据库中。 读取此文件并获取所有证书的最有效方法是什么?

如果要在给定字符串中查找子字符串,请使用 "re" 模块。

import re

start        = '-----BEGIN CERTIFICATE-----'
end          = '-----END CERTIFICATE-----'
contents     = open(FILENAME).read()
certificates = re.findall(f'{start}(.*?){end}',contents,re.DOTALL)

DOTALL 表示搜索换行符,而不是单独处理每一行。

我应该注意,您不应该像这样手动操作证书文件。如果您希望它们采用不同的格式或其他格式,您真的应该使用 openssl。