前言linux
证书的做用算法
加密通讯数据,验证对象身份,保证数据完整性工具
什么是自签名证书加密
公认的证书每每都须要收费,若是客户端与服务端都是由咱们本身来操控,那即可以使用自签名证书(说白了就是只是本身承认的证书)spa
ca签名证书server
ca签名证书,也就是咱们本身当是认证的机构去认证一个证书,那么客户端新人该ca证书也表明着信任该ca证书签名的全部的自签名证书。对象
openssl是什么blog
OpenSSL是一套开源的密码学工具包ssl
在SSL协议中,咱们使用了不少密码学手段来保护数据,其中包括对称密码、公钥密码、数字签名、证书、完整性校验、伪随机数生成等。因为这些算法和操做都很是复杂,因而开源社区就开发了一套库,这个库里面提供了不少现成的标准方法,其余开发者只要用正确调用这些方法,就能够实现SSL协议中的各类加密/解密操做了。开发
linux环境下使用openssl生成ca证书与自签名证书
生成ca证书
1.生成ca证书的密钥key
openssl genrsa -des3 -out ca.key 1024
2.生成ca的自签名证书,是的,此处的ca证书也是一个自签名证书
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
输入ca.key的使用密码后根据状况输入相应信息,在Commom Name选项中须要填写你要使用的域名
若是不想在调用密钥文件的时候输入密码,能够使用如下操做去除
openssl rsa -in ca.key -out ca.key
使用ca证书签名自签名证书
1.生成自签名证书密钥
openssl genrsa -des3 -out server.key 1024
2.生成自签名证书请求文件
openssl req -new -key server.key -out server.csr
输入相应信息后获得server.csr请求文件
3.使用ca证书对自签名证书请求文件进行签名
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt