CertUtil.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:GotoX 作者: SeaHOH 项目源码 文件源码
def create_subcert(certfile, commonname, ip=False, sans=None):
    sans = set(sans) if sans else set()
    cert = crypto.X509()
    cert.set_version(2)
    cert.set_serial_number(int((int(time() - sub_serial) + random.random()) * 100)) #setting the only number
    subject = cert.get_subject()
    subject.countryName = 'CN'
    subject.stateOrProvinceName = 'Internet'
    subject.localityName = 'Cernet'
    subject.organizationalUnitName = '%s Branch' % ca_vendor
    subject.commonName = commonname
    subject.organizationName = commonname
    #????????????????????
    cert.gmtime_adj_notBefore(sub_time_b)
    cert.gmtime_adj_notAfter(sub_time_a)
    cert.set_issuer(ca_subject)
    cert.set_pubkey(sub_publickey)
    sans.add(commonname)
    if not ip:
        sans.add('*.' + commonname)
    sans = ', '.join('DNS: %s' % x for x in sans)
    cert.add_extensions([crypto.X509Extension(b'subjectAltName', True, sans.encode())])
    cert.sign(ca_privatekey, ca_digest)

    with open(certfile, 'wb') as fp:
        fp.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号