前言
证书的作用
加密通信数据,验证对象身份,保证数据完整性
什么是自签名证书
公认的证书往往都需要收费,如果客户端与服务端都是由我们自己来操控,那便可以使用自签名证书(说白了就是只是自己认可的证书)
ca签名证书
ca签名证书,也就是我们自己当是认证的机构去认证一个证书,那么客户端新人该ca证书也代表着信任该ca证书签名的所有的自签名证书。
openssl是什么
OpenSSL是一套开源的密码学工具包
在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