首页 > 其他分享 >openssl创建证书

openssl创建证书

时间:2023-11-16 12:06:38浏览次数:28  
标签:Name 证书 read 创建 openssl pem token key pubkey

安装

brew install openssl

使用

root@MACdeMBP rem_key # openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Generating a 4096 bit RSA private key
................................................................................................++
.................................++
writing new private key to 'key.pem'
Enter PEM pass phrase:    # 这边输入你要设置的密码,比如123456
Verifying - Enter PEM pass phrase:
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:CN  # 国家名称
State or Province Name (full name) []:Shanghai  # 省份
Locality Name (eg, city) []:shanghai # 城市
Organization Name (eg, company) []:py # 组织机构
Organizational Unit Name (eg, section) []:py  # 机构部门
Common Name (eg, fully qualified host name) []:*.lw.com # 域名
Email Address []:[email protected] # 邮箱

# 上面操作完成后会在当前目录下生成cert.pem	key.pem两个文件

# 生成pubkey.pem文件
root@MACdeMBP rem_key # openssl x509 -pubkey -noout -in cert.pem > pubkey.pem  
root@MACdeMBP rem_key # ls
cert.pem	key.pem		pubkey.pem
# 生成privkey.pem文件,要输入之前设置的密码
root@MACdeMBP rem_key # openssl rsa -in key.pem -out privkey.pem
Enter pass phrase for key.pem:
writing RSA key

# 文件说明
cert.pem 文件包含证书
pubkey.pem 文件包含从证书提取的公钥
key.pem 文件包含RSA私钥,加密的
privkey.pem 文件包含RSA私钥,非加密的

使用jwt进行加密解密

import jwt

with open('pubkey.pem') as f:
    PUBKEY = f.read()

with open('privkey.pem') as f:
    PRIVKEY = f.read()


def create_token(**data):
    return jwt.encode(data, PRIVKEY, algorithm='RS512')


def read_token(token):
    return jwt.decode(token, PUBKEY, algorithms='RS512')


token = create_token(some='data', inthe='token')
print(token)
# eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoiZGF0YSIsImludGhlIjoidG9rZW4ifQ.WH7pak1eGR7-C_WfHcOma3UpHHQucb5VDR2hcJTaFx80F4ny53ETuIpdWB0tJuW6QvI2F7OBUwJaYzlreV2-e8gUX2mZKoXj99YKmvlOg_mskahLVBmQQwgoIXAqsNiAcHUFG5QeJvN10HLoLVCnvalXyIYI_yEOCU3JXUaSnawKmhgDKA--S0EtGOiV4fxw-S8yGK8W-nLhTwSZqAGpg27fJZcdsv5YaV8LR-ledltqCLEKrYvf-1p28TQLLKHxCFU1cJyYK_zA4jtR_tOa7zrLPaE0iiQpkx16YxoqWEHM4f_nKBIi1Wf9Gvh71DjEdmLOo_4LrXKhsg-OWjoDSc0FoFjJv70GPgF-uBKC-4FmR9N4EzIyAhcDssQuYtJLc0_V0lmd-kw4xjKmNmDSlUIHKyrzm_GnILo23T7BplYeUzDHi1XIwP9qnZuOaN4jkCdfUPDyNouHhFhHb5QypJaWAZIkBIESqTTQeuQVv_K_8CGNPzzNP9AtWrUJjMwen87yNN2X4JbKI_reJblGGTCwhQ5HF5OStpyfGrJwgtKZJVNoE3EQv5RrCxVk6VNUHu33EyDIiN-15FR8PyN6Fc0w-g5_j7TIjGA-ZBnJ_UuDMymuMwUB7sat14Bx7tdQ6sX22fw5xlCH5hx5YJ9viIX8W00N3ePAXaYNXn1VogA


read = read_token(token)
print(read)  # {'some': 'data', 'inthe': 'token'}

-------------------------------------------

个性签名:代码过万,键盘敲烂!!!


标签:Name,证书,read,创建,openssl,pem,token,key,pubkey
From: https://blog.51cto.com/u_15687422/8415955

相关文章

  • 【Azure 容器应用】在中国区Azure上创建的容器服务默认应用域名不全
    问题描述在中国区Azure上,创建ContainerApp服务,发现默认的应用程序URL只有前半段,并不是一个完整的域名。这是什么情况呢?正常的ContainerApp的URL格式为:<containerappname>.<environment>.<region>.azurecontainerapps.cn。如:mymoreappinone04.icysand-c9bc5d4e.chinanorth3.azur......
  • Java 创建多线程的三种方法
    在Java中创建多线程,往往都要通过Thread类来实现,今天学习下Java中创建多线程的三种方法[1]。1.继承Thread类通过继承Thread类实现多线程。主要方法:1.voidrun(),线程开启后,方法将被调用执行2.voidstart(),使此线程开始执行,Java虚拟机会调用run()方法实现步骤:1.定......
  • Go程序生成ssl证书
    packagemainimport( "crypto/rand" "crypto/rsa" "crypto/x509" "crypto/x509/pkix" "encoding/pem" "math/big" "net" "os" "time")funcmain(){ max:=new(......
  • 非严格模式下color被泄漏到全局作用域中,创建一个全局变量;严格模式下抛出ReferenceErro
    请问在非严格模式下以下JS代码最终的输出是什么?functionchange(obj){with(obj){color='red'}}varbox={size:'15*15'}change(box);console.log(color);AundefinedBnullCredD报错正确答案:C需要明确with会创建一个新的作用域,由于box本身没有......
  • 使用new实例化对象时,this指向新创建的对象
    下面关于this工作原理的描述,哪一个是错误的?A在全局范围内,this指向全局对象(浏览器下指window)B对象函数调用时,this指向当前对象C全局函数调用时,this指向全局函数D使用new实例化对象时,this指向新创建的对象正确答案:C全局函数调用时,this指向全局函数;应该是指向调用全局......
  • 使用Cmake创建一个head only的库(未完待续)
    IntheCMakescriptyouprovided,thesecondparameteroftheadd_library()functionisanemptystring"".ThisisacommonpatternusedinCMaketocreatean"interface-only"libraryoraheader-onlylibrary.以下是示例add_library(conve......
  • 创建虚拟环境内进行pip安装库方法
    1、说明在创建虚拟环境后,要想安装第三方python软件包,需要指定装入哪个虚拟环境(路径),否则安装不成。这里以虚拟环境安装一个opencv为例,说明正确安装过程。2、常规安装的误区如果直接安装,如:“pipinstallopencv-python”就会出现下面这个:Requirementalreadysa......
  • 刚开始装Acaconda无法创建虚拟环境解决方法
    这个方法完美解决解决anaconda创建环境失败的问题_anaconda创建环境出错-CSDN博客......
  • oracle创建用户授权提示无权限解决方案
    流程如下:1.win+r输入cmd回车,打开命令行窗口,输入 sqlplus 用户名/密码assysdba以管理员身份连接数据库。    如:sqlplusscott/123456assysdba;2.创建用户并授权--创建用户createuser用户名identifiedby密码;--授予所有权限grantallprivilegesto......
  • Flask简介、Flask创建和运行、fastapi、显示用户小案例
    Flask简介#python主流的web框架-Django-fastapi:异步-flask#flask是个微型的web框架,不像djagno那么庞大,django有很多内置app,缓存,信号,消息,权限,admin#flask随着项目越来越大,使用第三方插件,越来越像django模版渲染:jinja2web服务器:WerkzeugWS......