通过OPENSSL建立证书以及CSR证书签名过程
http://my.opera.com/yuyii/blog/openssl-2
通过OPENSSL建立证书以及CSR证书签名过程
Thursday, 15. March 2007, 09:35
SSL
CSR证书签名过程:
1。用户先拥有一个自己的密钥
openssl genrsa -des3 -out my.key 1024
建立密钥,以为1024位加密。
2。通过密钥建立自己的CSR文件,其中cnf文件为配置文件,openssl也自带cnf文件
openssl req -new -config my.cnf -key my.key -out my.csr
建立csr文件
cnf举例:
[req] default_bits=1024 distinguished_name=req_distinguished_name prompt=no string_mask=nombstr req_extensions=v3_req [req_distinguished_name] CN=fin1983@hotmail.com [v3_req] nsCertType=server,client basicConstraints=critical,CA:false
============之后为服务器要做的事=========
3。提交给服务器签名生成证书
openssl ca -batch -config ca.cnf -key 123456 -in my.csr -out my.crt
123456假设为根证书的密码
ca.cnf举例:
[ca] default_ca=default_CA [default_CA] dir=/tmp/sslPath certs=/tmp/sslPath new_certs_dir=/tmp/sslPath database=/tmp/sslPath/dbfile serial=/tmp/sslPath/serialfile certificate=/tmp/sslPath/rootcrtfile private_key=/tmp/sslPath/rootkeyfile default_crl_days=30 default_startdate=070307000000Z default_enddate=371231000000Z default_md=md5 preserve=yes x509_extensions=user_cert policy=policy_anything crl_extensions=crl_ext [policy_anything] commonName=supplied [user_cert] subjectAltName=email:copy basicConstraints=critical,CA:false
预先在sslPath目录下建立dbfile,serialfile,rootcrtfile以及rootkeyfile
dbfile 空
serialfile 自定义,随意设个数字,例如21
rootcrtfile 服务端证书
rootkeyfile 服务端密钥
===============如果csr与私钥在客户端,则此过程无法在服务器端完成========
4。生成PKCS12文件。
openssl pkcs12 -export -in my.crt -inkey my.key -password pass:$userpass -out my.pfx
$userpass为证书的密码保护,可有可无。
另,签名csr文件时似乎不能重复签名。在配置里需要做一点改动,否则会失败。例如serial必须保证unique等等
补充一些文件格式:
在Security编程中,有几种典型的密码交换信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b
.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥
算法
base64不是加密算法,但也是SSL经常使用的一种算法,它是编码方式,用来把asc码和二进制码转来转去的。
openssl x509部分命令
打印出证书的内容:
openssl x509 -in cert.pem -noout -text
打印出证书的系列号
openssl x509 -in cert.pem -noout -serial
打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject
以RFC2253规定的格式打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
在支持UTF8的终端一行过打印出证书的拥有者名字
openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
打印出证书的MD5特征参数
openssl x509 -in cert.pem -noout -fingerprint
打印出证书的SHA特征参数
openssl x509 -sha1 -in cert.pem -noout -fingerprint
把PEM格式的证书转化成DER格式
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
把一个证书转化成CSR
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
给一个CSR进行处理,颁发字签名证书,增加CA扩展项
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem
给一个CSR签名,增加用户证书扩展项
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial
查看csr文件细节:
openssl req -in my.csr -noout -text
通过OPENSSL建立证书以及CSR证书签名过程相关推荐
- 转 openssl 建立服务器证书
openssl 建立服务器证书 ## 1,建立目录和文件 set path=D:/openssl/bin D: cd D:/openssl/conf/ ren ope ...
- iOS -- OpenSSL生成RSA双密匙+签名证书(流程)
1.生成一对RSA密匙(非对称密匙,包含1个公共+一个私用), $ openssl genrsa -out <fichier> <taille> 例子: openssl ...
- 基于 OpenSSL 生成自签名证书,数字签名,泛域名证书,ca证书,PKI等
基于 OpenSSL 生成自签名证书_qhh0205-CSDN博客_openssl自签名证书 windows 下 nginx 双向认证自签名证书配置 windows 下 nginx 双向认证自签名证书 ...
- 建立私有CA实现证书申请颁发
CA和证书 PKI:Public Key Infrastructure 公共密钥加密体系 签证机构:CA(Certificate Authority) 注册机构:RA 证书吊销列表:CRL 证书存取库 ...
- 使用OpenSSL生成自己服务器的证书
之前做实验的时候,曾经写过一篇博客,如何使用OpenSSL创建证书.这里再做一个整理,增加一些内容,精简一部分内容. 参考链接 OpenSSL Certificate Authoirty 信安实践-- ...
- Autosar之自签名证书与CA证书
文章目录 一.安全传输 1.框架 2.如何实现传输安全? 3. 对称加密和非对称加密的区别? 4.伪随机数和真随机数 5.数字签名 -- 验证完整性 & 认证数据来源 6.为什么使用摘要算法的 ...
- 深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)
互联网是虚拟的,通过互联网我们无法正确获取对方真实身份.数字证书是网络世界中的身份证,数字证书为实现双方安全通信提供了电子认证.数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持 ...
- ca证书 csr_什么是csr证书
SSL证书生成流程 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socketlayer(SSL),SSL安全协议主要用来提供对用户和服务器的认证:对传送的数据进 ...
- openssl 自建CA签发证书 网站https的ssl通信
<<COMMENT X509 文件扩展名 首先我们要理解文件的扩展名代表什么.DER.PEM.CRT和CER这些扩展名经常令人困惑. 很多人错误地认为这些扩展名可以互相代替.尽管的确有时候 ...
- keytool生成证书_创建自签名ssl证书,Java生产jks证书
一.创建自签名ssl证书 下载openssl软件: https://pan.baidu.com/s/1Zy4W7pqSO8caoR_R5pF3DQ #提取码:bjd4 设置环境变量 进入openss ...
最新文章
- ConcurrentHashMap 的实现原理
- 远程ssh shell 脚本 tcgetattr: Inappropriate ioctl for device错误
- 西电开源社区Ubuntu 10.04软件源
- java平移变换_java移位运算符:(左移)、(带符号右移)和(无符号右移)。...
- 无意间发现的java的相关资料
- 例题-Quota 实作:
- mysql基础2-数据库的相关操作
- CSS面试题汇总(三)
- 计算机专科大学三年规划书,专科大学规划书范文
- JS-underfined is not a function
- 日志20130104~0308
- java中的i/o体系结构及流分类
- AD从原理图到PCB超详细教程
- C语言 输出三角形数列 for循环
- 中国集成电路发展探秘
- 全票通过!微众开源项目EventMesh进入Apache孵化器
- 使用手机但不沉迷的小tis 写给自己的求别玩了姐听听英语吧
- 小白学Django第九天| Cookie和session的那些骚操作
- 速度追踪--VelocityTracker
- 网页批量下载图片-怎么一键快速下载网页图片的工具