证书TSL生成

在服务器之间,如果访问仅凭账号密码,好像不是很安全。

一般都会通过证书颁发授信来实现安全访问,也就是说,你拿到了我的证书,我生成证书有公钥、私钥,我给你公钥放到你的服务器上,每次你来访问的时候,带上验证信息就,我这里才识别。

以下是需要用的时候,抄别人的过来的,确实可以生成可以使用。

这里是portainer使用到tsl证书。

read -s PASSWORD   //定义一个密码变量==回车后,输入一个密码
read SERVER   //注意主机名变量要与系统对应==回车后输入一个服务器名称,一般是本机比如server110
cd /home/soft/portainer   //切换到生产密钥的目录
openssl genrsa -aes256 -passout pass:$PASSWORD -out ca-key.pem 2048
openssl genrsa -out server-key.pem 2048
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem     //注意主机名要与为上面的SERVER变量一致
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out server-cert.pem
openssl genrsa -out key.pem 2048
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem -extfile extfile.cnf
chmod 0400 ca-key.pem key.pem server-key.pem   //更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem   //更改密钥权限
rm client.csr server.csr   //删除无用文件
sz {ca.pem,cert.pem,key.pem}  //下载秘钥文件
systemctl stop docker //关闭docker,再运行此命令
/usr/bin/dockerd --tlsverify \
--tlscacert=/home/soft/portainer/ca.pem \
--tlscert=/home/soft/portainer/server-cert.pem \
--tlskey=/home/soft/portainer/server-key.pem \
-H 0.0.0.0:12375

 

posted on 2020-03-23 18:29  陈惟鲜的博客  阅读(427)  评论(0编辑  收藏  举报

导航