加密和CA证书

gpg对称加密与非对称加密

gpg对称加密

gpg非对称加密

CA证书向证书的发布机构申请证书过程

常用后缀名

gpg对称加密

思路:通过gpg -c file 进行文件加密,并生成一个 file.gpg的新文件  ,通过 gpg -d file.gpg >file 可以进行解密
过程如下:
master主机
gpg -c  k8s.sh    //使用gpg  -c 选项对文件实现对称加密,输入密码后加密完成
rsync -av k8s.sh.gpg   root@node1:~
node1主机
gpg -o k8s2.sh -d k8s.sh.gpg    // -o选项指定文件生成路径,-d 对加密文件进行解密并显示,输入密码

gpg非对称加密

    **master**
    gpg  --gen-keY   //master生成密钥对
    cd .gnupg/         //进入密钥根目录
    gpg --list-keys         //查看密钥列表
    gpg -a --export -o master-key        //生成公钥
    scp master-key  node1:   
    gpg -o motd  -r master -d motd.gpg   //master节点用私钥解密node1使用自己公钥加密过的文件;-o 指定生成文件目录,-r指定公钥UID,-d指定加密文件

    **node1**
    gpg --list-keys      //node1查看密钥列表
    gpg --import master-key        //导入公钥文件
    gpg  --list-keys                 //再次查看密钥列表,可以看到导入成功
    gpg -e  -r master motd       //-e加密文件,-r 指定公钥UID进行加密
    ls motd*            
    cat  motd.gpg 
    scp motd.gpg  master:

 

CA证书

1. 向证书的发布机构申请证书过程

2. 搞一个虚拟的CA机构,生成一个证书。操作系统里面安装"XXX CA"的证书;

3. 生成一个自己的密钥,然后填写证书认证申请,拿给上面的CA机构去签名;

4. "XXX CA"在给我们发布证书时,把Issuer,Public key,Subject,Valid from,Valid to等信息以明文的形式写到证书里面,然后用一个指纹算法计算出这些数字证书内容的一个指纹;

5. 把指纹和指纹算法用自己的私钥进行加密,然后和证书的内容一起发布;

6. "XXX CA"还会给一个我们公司 “YYY 公司名称” 的私钥给到我们。

 

命令参考

1.生成RSA私钥(使用aes256加密)
    openssl genrsa -aes256 -passout pass:111111 -out rsa_aes_private.key 2048
    openssl genrsa -des3 -out ca.key 1024
    因为要给nginx使用,这里不使用加密的私钥
    mv  ca.key  cabak.key
    openssl rsa -in cabak.key -out ca.key   //去除密码

    此时若生成公钥,需要提供密码
    openssl rsa -in rsa_aes_private.key -passin pass:111111 -pubout -out rsa_public.key  //可忽略此步骤

    生成 RSA 私钥和自签名证书
    openssl req -newkey rsa:2048 -nodes -keyout rsa_private.key -x509 -days 365 -out cert.crt   //一次性生成私钥和证书

2.使用 已有RSA 私钥生成自签名证书
    openssl req -new -x509 -days 365 -key rsa_private.key -out cert.crt
    openssl req -new -x509 -days 365 -key ca.key          -out ca.crt 

3.生成自己网站的密钥server.key
    openssl> genrsa -des3 -out server.key 1024
    openssl genrsa -aes256 -passout pass:111111 -out server.key 2048
    mv  server.key   serverbak.key
    openssl rsa -in serverbak.key -out server.key   //去除密码
    rm -rf serverbak.key
    
4.使用 RSA私钥生成 CSR 签名请求
    openssl> req -new -key server.key -out server.csr
    openssl req -new -key server.key -out server.csr

5.使用 CA 证书及CA密钥 对请求签发证书进行签发,生成 x509证书
    openssl x509 -req -days 365  -in server.csr -CA ca.crt -CAkey ca.key -passin pass:111111 -CAcreateserial -set_serial 01 -out server.crt
    openssl x509 -req -days 365  -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt 
6.验证证书内容
    openssl x509 -in server.crt -noout -text

 

常用后缀名

格式 说明

.crt .cer 证书(Certificate)

.key 密钥/私钥(Private Key)

.csr 证书认证签名请求(Certificate signing request)

*.pem base64编码文本储存格式,可以单独放证书或密钥,也可以同时放两个;base64编码就是两条-------之间的那些莫名其妙的字符

*.der 证书的二进制储存格式(不常用)

posted @ 2021-11-23 20:30  不会跳舞的胖子  阅读(468)  评论(0编辑  收藏  举报