对称、非对称加密算,openssl生成证书(笔记)

对称加密算法

1.密钥只有一个,加密和解密都需要同一个密钥
2.DES,IDEA,AES
3.明文+密钥=密文, 密文+密钥=明文
4.加密速度快,系统开销小,适用大量数据的加密

非对称加密算法
1.密钥由公钥和私钥组成,必须成对存在。公钥公布出去,私钥自己保留
2.RSA,DSA(数字签名)
3.明文+接收方公钥=密文,密文+配置的私钥=明文
4.加密速度比对称加密算法慢1000倍,系统开销大,适用小量数据的加密

HASH算法
1.单向算法
2.MD5,SHA
3.仅对内容做散列,不能由散列恢复原来内容

一.RSA

生成私钥
openssl genrsa -out private.key 1024

生成公钥
openssl rsa -in private.key -pubout -out pubkey.key

二.DSA(数字签名)

生成DSA参数
openssl dsaparam -out dsa_param.pem 1024

生成私钥
openssl gendsa -out dsa_private_key.pem dsa_param.pem

生成公钥
openssl dsa -in dsa_private_key.pem -pubout -out dsa_pub_key.pem

三.X509证书

key:私钥(通常是RSA算法)
csr: 证书请求文件 (制作crt时,必须使用自己的私钥签署,签署时还可以设置证书密码)
crt: CA认证后的证书

生成key
openssl genrsa -des3 -out server_withkey.key 2048

生成不带密码key
openssl rsa -in server_withkey.key -out server.key

生成csr
openssl req -new -key server.key -out server.csr

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GuangDong
Locality Name (eg, city) [Default City]:GuangZhou
Organization Name (eg, company) [Default Company Ltd]:Guangzhou Joylife Co., Ltd.
Organizational Unit Name (eg, section) []:Joylife
Common Name (eg, your name or your server's hostname) []:api.shopun.com
Email Address []:webmaster@shopun.com

生成crt (CA证书)
openssl req -new -x509 -key server.key -out ca.crt -days 3650

生成crt
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt

证书合并
cat server.key server.crt>server.pem

x509转pfx证书
openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx

pfx转x509证书

生成pem
openssl pkcs12 -in server.pfx -nodes -out server.pem

pem中获取key
openssl rsa -in server.pem -out server.key

pem中获取crt
openssl x509 -in server.pem -out server.crt

多域名证书的制作:
方法一:
openssl x509 -req -in dev.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out dev.crt -days 365 -extfile sign.cnf
其中*.cnf文件用于指定出csr里面指定的域名之外的扩展域名,内容如下:
subjectAltName=DNS:www.domain.tld,DNS:www2.domain.tld

上一篇:ES6学习路上的小学生,promise处理异步操作,简易原始起步之用。先能用,再深究!


下一篇:[svc]对称加密/非对称加密细枝末节-如何做到数据传输的authentication/data integrity/confidentiality(私密)