私をここに連れてきたものと同様のグーグル検索を介してこの質問を見つけた他の人に。
同様の問題に直面し、M2Cryptoのこの欠点に対するパッチが見えないので、OpenSSLユーティリティを呼び出して出力を解析するという道をたどりました。これは、YAMLに十分似ているため、少しクリーンアップするだけで偽造できます。
def req_extensions(csrFilename):
cmd = ('openssl req -text -noout -in %s'
% csrFilename)
output = subprocess.check_output(cmd.split(),
stderr=subprocess.STDOUT)
output = re.sub(r': rsaEncryption', ':', output)
output = re.sub(r'[0-9a-f]{2}:', '', output)
return yaml.load(output)
それで...
csrExt = self.req_extensions('my.csr')
keyUsage = (
csrExt['Certificate Request']['Data']['Requested Extensions']
['X509v3 Key Usage'])
SAN = (
csrExt['Certificate Request']['Data']['Requested Extensions']
['X509v3 Subject Alternative Name'])
等