数字证书: 第三方机构使用一种安全的方式把公钥分发出去 证书格式:x509,pkcs家族 x509格式: 公钥和有效期限: 持有者的个人合法身份信息;(主机名,域名) 证书的使用方式 CA的信息 CA的数字签名 谁给CA发证:自签署证书
用户 1.生成一对密钥 2.把所需信息和公钥按固定格式制作成证书申请(把公钥给CA签署)
CA机构 1.自签证书,生成密钥对 2.签署证书 3.传给用户 4.维护吊销列表(是否过期) OpenCA(大规模应用)
用openssl实现私有(自建)CA 配置文件/etc/pki/tls/openssl.cnf 命令: 谁给CA发证:自签署证书
CA服务器端: 用openssl实现私有CA: 配置文件:/etc/pki/tls/openssl.cnf
[root@k8s1 CA]# cd /etc/pki/CA 生成密钥对儿,默认生成公钥和私钥 cakey.pem是私钥: # (umask 077; openssl genrsa -out private/cakey.pem 2048) 如果想查看公钥,公钥是从私钥中提取出来的,非必要提取公钥: # openssl rsa -in private/cakey.pem -pubout -text -noout 生成自签证书: # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655 countrCountry Name 国家 State or Province Name 州或者省的名字 Locality Name 所在的城市 Organization Name 所在的公司 Organizational Unit Name 所在的部门 Common Name https访问的地址
配置文件:/etc/pki/tls/openssl.cnf
自签证书,openssl.conf 配置文件,无法修改Common Name(https://ca.cinyi.com),和email,需要手动修改。
创建需要的文件:
# cd /etc/pki/CA # touch index.txt serial crlnumber 给签发的客户端编号 #echo 01 > serial 客户端: 用openssl实现证书申请: 在主机上生成密钥,保存至应用此证书的服务的配置文件目录下, 例如: # mkdir /etc/httpd/ssl # cd /etc/httpd/ssl # (umask 077; openssl genrsa -out httpd.key 1024) 生成证书签署请求(输入的字符country name,State or Province Name, Organization Name 必须和服务CA端相同,否则
CA签署不通过): # openssl req -new -key httpd.key -out httpd.csr
将请求文件发往CA;
# scp httpd.csr CA服务器端:/tmp/
CA服务器端:
CA签署证书: 签署: # openssl ca -in /tmp/192.168.20.230.csr -out /tmp/192.168.20.230.crt -days 3650 将证书传回请求者,可以放置到nginx 配置文件下,形成https访问
# scp /tmp/192.168.20.230.crt 192.168.20.230:/tmp/下, 吊销证书: # openssl ca -revoke /path/to/somefile.crt