gpg工具实现对称加密

公钥加密

    在B主机公钥加密,在A主机上解密的实现:

    1、在A上生成公钥私钥对儿:gpg --gen-key,出现交互式界面可以按照默认选择,最后一项必须输入用户id用以识别钥匙,Email和注释可以不填,之后选o,完成后输入密码,也可以不输

    2、在A上查看公钥:gpg --list-keys 

    3、在A上导出公钥到chen.pubkey:gpg -a --export -o chen.pubkey,(在哪个目录做此命令,公钥就在哪个目录)

    4、从A上复制公钥文件到需加密的B上:scp chen.pubkey B的IP:/目标位置 (不输位置默认放到root家目录)

    5、在需加密的B上生成公钥私钥对儿,和第1步一样的指令

    6、在B上导入A的公钥,gpg --import chen.pubkey,并查看gpg --list-keys 

    7、用从A主机导入的公钥,加密B主机的文件FILE,生成FILE.gpg,gpg -a -r A的密钥UserName FILE,生成FILE.gpg 

    8、复制加密文件到A主机:scp FILE.gpg IPA:/目标位置 

    9、在A主机解密文件:gpg -d FILE.gpg,如果解密后文件需要存放,gpg -o FILE -d FILE.gpg 

    10、删除公钥和私钥:gpg --delete-keys PUBLICKEY,gpg --delete-secret-keys PRIVATEKEY


创建CA和申请证书

1、创建私有CA

打开openssl的配置文件:/etc/pki/tls/openssl.cnf

根据自己需要建立的环境挑选环境中的policy中选用policy_match还是policy_anythingpolicy_default中比较严格,要求被授权方国家名、省名、组织名必须一样,如果在公司内部建立私有CA,此处可选择policy_anything

2、创建所需必备文件

touch /etc/pki/CA/index.txt

echo 01 > /etc/pki/CA/serial

3、自签证书

生成私钥

cd /etc/pki/CA

(umask 066;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048),自签证书的私钥名必须为cakey.pem

4、生成自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out cacert.pem -days 365

-new:生成新证书请求

-x509:专用于CA生成自签证书

-key:生成请求时用到的私钥文件

-day NUM:证书有效期

-out /目录:证书的保存路径

5、给需要使用证书的主机生成证书请求

(1)给web服务器生成私钥

(umask 066;openssl genrsa -out /etc/pki/tls/private/SERVER.key 2048)

(2)生成证书申请文件

openssl req -new -key /etc/pki/tls/private/SERVER.key -days 365 -out /etc/pki/tls/SERVER.csr,这里出现的交互式界面填写要和第4步填的一样,否则在第1步就需要选择policy_anything

6、将证书请求文件传输给CA:scp SERVER.csr IPCA:/位置

7、CA签署证书,并将证书颁发给请求者

openssl ca -in /位置/SERVER.csr -out /etc/pki/CA/certs/SERVER.crt -days 365

scp /etc/pki/CA/certs/SERVER.crt IPSERVER:/位置

8、查看证书中的信息

openssl x509 -in /PATH/FROM/CERT_FILE -noout -text/issuer/subject/serial/dates

openssl ca -status SERIAL 查看指定编号的证书状态

9、吊销证书

(1)在客户端获取要吊销的证书serial

openssl x509 -in /位置/ -noout -serial -subject

(2)在CA上,根据客户提交的serial与subject信息,对比验证是否与index.txt文件中的信息一致,吊销证书:

openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

(3)指定第一个吊销证书的编号

echo 01 > /etc/pki/CA/crlnumber

(4)查看crl文件

openssl crl -in /etc/pki/CA/crl.pem -noout -text