标签:适合 系统 主机 微软 相互 emd engine name begin
1、 数字证书常见标准
2、 证书编码格式
——-BEGIN XXXX ——
开头,以——END XXXX——
结尾。openssl x509 -in certificate.pem -text -noout
openssl x509 -in certificate.der -inform der -text -noout
3、 各种后缀含义:文件的内容和后缀没有必然的关系,但是一般使用这些后缀来表示这是什么文件。
.der
和.cer
证书文件相同。openssl rsa -in mykey.key -text -noout
openssl rsa -in mykey.key -text -noout -inform der
,这是使用RSA算法生成的key这么查看,DSA算法生成的使用dsa参数——-BEGIN XXXX ——
,与结尾的——END XXXX——
对应。使用PEM格式存储的证书:
—–BEGIN CERTIFICATE—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE—–
使用PEM格式存储的私钥:
—–BEGIN RSA PRIVATE KEY—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END RSA PRIVATE KEY—–
使用PEM格式存储的证书请求文件:
—–BEGIN CERTIFICATE REQUEST—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE REQUEST—–
1、 OpenSSL 是一个开源项目,其组成主要包括一下三个组件:
2、 openssl可以实现:秘钥证书管理、对称加密和非对称加密 。
3、 对称加密:对称加密需要使用的标准命令为 enc ,用法如下:
openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64]
[-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt] [-z] [-md]
[-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]
in filename
:指定要加密的文件存放路径out filename
:指定加密后的文件存放路径salt
:自动插入一个随机数作为文件内容加密,默认选项e
:可以指明一种加密算法,若不指的话将使用默认加密算法d
:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致a/base64
:使用-base64位编码格式4、 单向加密:单向加密需要使用的标准命令为 dgst ,用法如下:
openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary]
[-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename] [-prverify
filename] [-signature filename] [-hmac key] [file...]
[-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1]
:指定一种加密算法out filename
:将加密的内容保存到指定文件中5、 生成密码:生成密码需要使用的标准命令为 passwd ,用法如下:
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
1
:使用md5加密算法salt string
:加入随机数,最多8位随机数in file
:对输入的文件内容进行加密stdion
:对标准输入的内容进行加密6、 生成随机数:生成随机数需要用到的标准命令为 rand ,用法如下:
openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num
out file
:将生成的随机数保存至指定文件中base64
:使用base64 编码格式hex
:使用16进制编码格式7、 生成秘钥对:首先需要先使用 genrsa 标准命令生成私钥,然后再使用 rsa 标准命令从私钥中提取公钥。genrsa 的用法如下:
openssl genrsa [-out filename] [-passout arg] [-des] [-des3] [-idea] [-f4] [-3] [-rand file(s)] [-engine id] [numbits]
out filename
:将生成的私钥保存至指定的文件中-des|-des3|-idea
:不同的加密算法numbits
:指定生成私钥的大小,默认是2048openssl rsa [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg]
[-sgckey] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-engine id]
in filename
:指明私钥文件
out filename
:指明将提取出的公钥保存至指定文件中
pubout
:根据私钥提取出公钥
创建证书(我们下面再介绍叭)
1、 查看openssl的配置文件openssl.cnf的存放位置(即openssl的安装位置),如上图OPENSSLDIR
2、 查看openssl的配置文件openssl.cnf,因为配置文件中对证书的名称和存放位置等相关信息都做了定义
vim /usr/lib/ssl/openssl.cnf
3、 创建为根证书CA所需的目录及文件
#根据配置文件信息,到CA根目录,若没有则自己创建
cd /etc/pki/CA
#创建配置文件信息中所需的目录及文件
mkdir -pv {certs,crl,newcerts,private}
touch {serial,index.txt}
4、 指明证书的开始编号
echo 01 >> serial
5、 生成根证书的私钥(注意:私钥的文件名与存放位置要与配置文件中的设置相匹配)
(umask 077; openssl genrsa -out private/cakey.pem 2048)
umask 077
:设置权限可写可执行,但不可读genrsa
:产生rsa密钥命令out
: 输出路径,这里指private/ca.key.pem2048
,指的是密钥的长度位数,默认长度为512位6、 生成自签证书,即根证书CA,自签证书的存放位置也要与配置文件中的设置相匹配,生成证书时需要填写相应的信息。
openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out cacert.pem -days 365
new
:表示生成一个新证书签署请求x509
:专用于CA生成自签证书,如果不是自签证书则不需要此项key
:用到的私钥文件out
:证书的保存路径days
:证书的有效期限,单位是day(天),默认是openssl.cnf的default_days在需要证书的服务器上生成私钥,然后通过此私钥生成证书签署请求,最后将请求通过可靠的方式发送给根证书CA的主机。根证书CA服务器在拿到证书签署请求后,即可颁发那一服务器的证书。
1、 在需要证书的服务器上,生成证书签署请求
生成私钥,该私钥的位置可随意定
(umask 077; openssl genrsa -out test.key 2048)
生成证书签署请求
openssl req -new -key test.key -out test.csr -days 365
2、 在根证书服务器上,颁发证书
#我们创建一个req文件夹来接受服务器发送过来的文件(签署请求的csr文件、key文件等)
mkdir /etc/pki/CA/req
#颁发证书
openssl ca -in /etc/pki/CA/req/test.csr -out /etc/pki/CA/certs/test.crt -days 365
#查看证书信息
openssl x509 -in /etc/pki/CA/certs/test.crt -noout -serial -subject
1、 格式转换为PFX格式的私钥
openssl pkcs12 -export -out test.pfx -inkey test.key -in test.crt
inkey
的值test.key是需要证书服务器上生成的私钥key文件2、 格式转换为cer格式的公钥
openssl x509 -inform pem -in test.crt -outform der -out test.cer
#查看cer证书信息
openssl x509 -in test.cer -text -noout
#若报错unable to load certificate,则说明你打开的证书编码是der格式,需要用以下命令
openssl x509 -in test.cer -inform der -text -noout
inform pem
,由于输入的test.crt文件是以pem编码的,故需要指定以pem编码来读取
outform der
,输出的test.cer文件需要以der编码
Q:这是什么奇怪的我看不懂的问题,好像就是啥啥都打不开的样子,不能加载根CA的私钥
A:step1:openssl rand -writerand .rnd
step2:诶?好像刚刚查看了openssl.cnf
的配置信息,里面有定义证书的存放位置,这和我刚刚保存的位置不太一样啊!
所以,vim /etc/pki/tls/openssl.cnf
编辑配置文件,修改../../CA
为 /etc/pki/CA
就解决啦~
2020_1课程设计—基于BC的证书格式转换工具的设计与实现—Week1
标签:适合 系统 主机 微软 相互 emd engine name begin
原文地址:https://www.cnblogs.com/orii/p/12708211.html