加密和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 证书的二进制储存格式(不常用)
越学越感到自己的无知