[Azure] 使用azure cli 2.0 利用Key Vault创建自签名证书导入nginx

60 篇文章 0 订阅
44 篇文章 0 订阅

链接参考:https://docs.azure.cn/zh-cn/virtual-machines/linux/tutorial-secure-web-server

安装cli 2.0 的步骤这里略去。

首先创建一个新的资源组:
az group create --name dantstrg --location chinanorth
需要注意一点:上面创建的资源组的名称一定要使用小写字母,不要使用驼峰法命名,不然后续az vm format-secret转换证书的时候会遇到以下报错:
"Parameter 'resource_group_name' can not be none."

创建Key Vault:
az keyvault create --resource-group dantstrg --name dantstkv --enabled-for-deployment

生成证书:
az keyvault certificate create --vault-name dantstkv --name mycert --policy "$(az keyvault certificate get-default-policy)"

使用下面两条命令获取证书并转换证书:
secret=$(az keyvault secret list-versions --vault-name dantstkv --name mycert --query "[?attributes.enabled].id" --output tsv)
vm_secrets=$(az vm format-secret --secrets "$secret")

查看拿到的转换后的证书的信息:
echo $vm_secrets


接着使用转换后的证书创建一个新的虚拟机(创建好的证书也可以使用az keyvault certificate download下载到本地,或者在管理界面中下载.cer证书):
az vm create -g dantstrg -n dantstvm --admin-username daniel --image centos --secrets "$vm_secrets" --vnet-name DanNorthVNET --subnet "Subnet-1"

创建好之后直接在当前主机上ssh到创建好的虚拟机内,切换到/var/lib/waagent下面:


可与看到这个目录下有一对儿.crt和.prv文件。这两个文件就是我们前面生成的证书。
把这两个文件内容拷贝出来(或者把证书文件拷贝出来)。


我们看一下证书的内容:



我们在安装了nginx的机器上面创建两个证书文件test.cert和test.prv,放到/etc/nginx/ssl下面,把上面crt和prv文件的内容分别拷贝进去:




然后我们在/etc/nginx/ssl下面创建一个测试的index.html文件:


编辑/etc/nginx/nginx.conf文件:


重启nginx服务,访问虚拟机的IP显示刚刚创建的html页面并查看页面证书:


可以看到Issued by和Issued to 字段与我们前面生成的证书一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值