openSSL 的加密方式与证书制作
条评论openSSL是什么
OpenSSL项目是安全套接字层(secure sockets layer,SSL)和传输层安全(transport layer security,TLS)协议的一个实现,是大家共同努力开发出的代码可靠、功能齐全、商业级别的开源工具集。除了OpenSSL之外的其他TLS实现方式,如GnuTLS、Mozilla的网络安全服务(NSS)和Windows平台的TLS。
项目由遍布世界的志愿者所组成的社区进行管理,他们通过互联网进行沟通、计划和开发OpenSSL工具集以及相关的文档。现在几乎所有的服务器软件和很多客户端软件都在使用OpenSSL,其中基于命令行的工具是进行密钥、证书管理以及测试最常用到的软件了。
公钥算法与私钥算法
私钥算法
私钥加密算法,又称 对称加密算法,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的。常见的有《DES加密算法》、《AES加密算法》。
公钥算法
公钥加密算法,也就是 非对称加密算法,这种算法加密和解密的密码不一样,一个是公钥,另一个是私钥:
- 公钥和私钥成对出现
- 公开的密钥叫公钥,只有自己知道的叫私钥
- 用公钥加密的数据只有对应的私钥可以解密
- 用私钥加密的数据只有对应的公钥可以解密
- 如果可以用公钥解密,则必然是对应的私钥加的密
- 如果可以用私钥解密,则必然是对应的公钥加的密
- 公钥和私钥是相对的,两者本身并没有规定哪一个必须是公钥或私钥。
当该用户发送文件时,用私钥签名,别人用他给的公钥解密,可以保证该信息是由他发送的。即数字签名。
当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他看到。即安全传输。
- 加密: 公钥用于对数据进行加密,私钥用于对数据进行解密
- 签名: 私钥用于对数据进行签名,公钥用于对签名进行验证
由于在非对称算法中,公钥加密的数据必须用对应的私钥才能解密,而私钥又只有接收方自己知道,这样就保证了数据传输的安全性。
openssl生成公私钥对文件进行加解密
生成一个私钥
|
|
由私钥生成一个公钥
|
|
- -pubout: 输出公钥文件
随便新建一个文件
|
|
使用公钥加密这个文件
|
|
使用私钥解密这个文件
|
|
使用openssl获取证书
显示所有证书
Certificate chain
证书链s:
证书本身主体i:
证书颁发机构
服务器查看并解析证书
|
|
- X.509 是密码学里公钥证书的格式标准。
使用openssl制作证书
第一步:创建非对称密钥对
可以选择 RSA DSA ECDSA 的都可以,其中RSA 在浏览器的兼容是最好的。三者区别
rsa key
和 openssl生成公私钥对文件进行加解密 中一样
dsa key
123openssl dsaparam -genkey 2048 | openssl dsa -out dsa.key- dsaparam:本指令用来生成和操作dsa参数。- -genkey:生成dsa密钥。ec key
1openssl ecparam -genkey -name secp256r1 | openssl ec -out ec.key
第二步:创建证书签名请求 CSR 文件
注:Certificate Signing Request,即证书签名请求,这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的信息),在生成这个申请的时候,同时也会生成一个私钥,私钥要自己保管好。做过iOS APP的朋友都应该知道是怎么向苹果申请开发者证书的吧。
新建csr
查看csr
第三步: 自签名证书 (提交)
生成 csr 文件之后,需要提交到权威的 CA 数字认证中心 VeriSign 后者其他,这里是讲自己认证。
|
|
查看证书
|
|
证书格式
- .pem – Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码.
- .cer, .crt, .der – 通常是DER二进制格式的,但Base64编码后也很常见。
相关资料
本文标题:openSSL 的加密方式与证书制作
文章作者:qianyugang
发布时间:2019-04-01
最后更新:2019-04-03
原始链接:https://102no.com/2019/04/01/what-is-openssl/
版权声明:本网站发表的全部原创内容(不仅限于文章、图片,包含文章评论),著作权均归其发表者所有,均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明作者以及原文链接,商业授权请联系作者。
分享