openssl生成csr

一 python安装openssl:

pip install pyopenssl

安装完成即可import,cideing代码

# !/usr/bin/python3
# -*- coding: utf-8 -*-
import OpenSSL
from OpenSSL.crypto import sign, verify, PKey
import time
import hashlib
import  random
import  sys
import math

def create_csr(common_name, country=None, state=None, city=None,
               organization=None, organizational_unit=None,
               email_address=None):

    key = OpenSSL.crypto.PKey()
    key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)

    req = OpenSSL.crypto.X509Req()
    req.get_subject().CN = common_name
    if country:
        req.get_subject().C = country
    if state:
        req.get_subject().ST = state
    if city:
        req.get_subject().L = city
    if organization:
        req.get_subject().O = organization
    if organizational_unit:
        req.get_subject().OU = organizational_unit
    if email_address:
        req.get_subject().emailAddress = email_address

    req.set_pubkey(key)
    req.sign(key, 'sha256')

    private_key = OpenSSL.crypto.dump_privatekey(
        OpenSSL.crypto.FILETYPE_PEM, key)

    csr = OpenSSL.crypto.dump_certificate_request(
               OpenSSL.crypto.FILETYPE_PEM, req)

    return private_key, csr

#保存成.cer文件,
def save_certfile(str):
    now=time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime())
        filename = 'cert'+now+'.cer'
        with open(filename, 'w') as f:
            f.write(str)

if __name__ == '__main__':

    uid=1205125
    # client_id= random.randint()%sys.
    client_id="5485929"
    client_id_sha1= hashlib.sha1(client_id.encode("utf-8")).hexdigest()
    device_type=1
    CN="mips."+ str(uid)+"."+str(client_id_sha1)+"."+str(device_type)
    print(CN)
    pk,csr=create_csr(CN,"CN","Beijing","Beijing","XIAOGOU","XIAOGOU INC. CERT",None)
    print(pk)
    print(csr)

二 openssl工具:

https://blog.csdn.net/flhhly/article/details/124123584

命令:

生成rsa:

openssl req -new -nodes -newkey rsa:2048 -keyout my.key -out my.csr

在这里插入图片描述
(手动输入信息)

检查csr

openssl req -in ed25519.csr -text

Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = mips.1205125204.21078ee47bdd75846c8c98fa377b53ee917a400c.1
        Subject Public Key Info:
            Public Key Algorithm: ED25519
                ED25519 Public-Key:
                pub:
                    a7:0a:59:cd:57:5c:5e:9d:b3:ba:91:bf:8a:a3:7f:
                    13:3c:65:23:4d:80:2f:dc:1c:c0:bd:ef:b1:04:f0:
                    c8:0a
        Attributes:
            (none)
            Requested Extensions:
    Signature Algorithm: ED25519
    Signature Value:
        2d:3b:92:a7:3a:e7:e0:4c:c1:73:3f:2c:21:8f:be:0b:62:41:
        20:6c:a4:82:9e:37:e2:3c:78:e8:20:b1:9e:4e:a7:70:a2:16:
        bd:a7:86:64:3f:f3:ed:73:77:fc:e1:4e:38:4d:ac:c4:a3:6c:
        a5:c8:c2:3e:a6:1b:fe:bb:97:08
-----BEGIN CERTIFICATE REQUEST-----
MIHEMHgCAQAwRTFDMEEGA1UEAww6bWlwcy4xMjA1MTI1MjA0LjIxMDc4ZWU0N2Jk
ZDc1ODQ2YzhjOThmYTM3N2I1M2VlOTE3YTQwMGMuMTAqMAUGAytlcAMhAKcKWc1X
XF6ds7qRv4qjfxM8ZSNNgC/cHMC977EE8MgKoAAwBQYDK2VwA0EALTuSpzrn4EzB
cz8sIY++C2JBIGykgp434jx46CCxnk6ncKIWvaeGZD/z7XN3/OFOOE2sxKNspcjC
PqYb/ruXCA==
-----END CERTIFICATE REQUEST-----

检查证书:

openssl x509 -in device.crt -text

也可以直接打开cer查看详细信息:
在这里插入图片描述

总结:

csr从代码角度来讲就是输入公司的信息后得到base64编码的csr

troubleshouting:

1 .TypeError: init() got an unexpected keyword argument ‘name‘



#1 强制更新pip

python -m pip install -U --force-reinstall pip


#2 重新安装myopenssl

pip install pyopenssl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值