如何生成/更新SSL证书,并与Azure自定义域名绑定
最近上线了个人网站,需要设置绑定一下SSL证书,用来开启HTTPS,否则会被标记为高危网站。这里给大家分享一下如何使用Certbot手动生成/更新SSL证书,以及如何将生成的证书与Azure的自定义域名进行绑定。
1. 准备工作
2. 生成SSL证书
以笔者自己的域名为例,再安装Certbot以后,打开命令行,运行下面的命令生成证书:
certbot certonly --manual -d *.fengkeyleaf.com -d fengkeyleaf.com --agree-tos --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory --register-unsafely-without-email --rsa-key-size 4096
这里只需要替换你自己的域名即可,比如:
-d *.yourdomain.com -d yourdomain.com
至于其他参数可以参考这篇文章:Using Certbot Manually for SSL certificates。执行命令后,程序会要求你把生成的密匙更新到DNS管理商上面,比如需要把下图红箭头所指的密匙更新到DNS里面。
之后,登录你购买域名的DNS管理商,以Name为例。首先登录用户,并进入域名管理,找到“管理DNS记录(Manaage DNS Records)”,把刚才的密匙以TXT的格式添加到DNS记录里面:
稍等片刻,等待DNS信息更新,然后在命令行里面继续生成证书,最后Certbot会提示生成成功,并找到证书文件所在目录:
一般来说,生成的证书文件主要是以pem拓展名结尾的,但是配置到Azure上面需要使用pfx文件,所以接下来需要进行转换。
3. pem转换pfx
首先安装openssl,然后在SSL证书目录下打开命令行,并执行下面命令进行转换:
openssl pkcs12 -export -out fengkeyleaf_2023_6.pfx -in cert.pem -inkey privkey.pem -legacy -provider-path 'your_path_to_openssl_binary'
这里需要将OpenSSL二进制文件目录参数更新成你电脑上面的配置,具体目录大家可以找找OpenSSL的安装文件,笔者的路径为:
'C:\MyDisk\Softwares\OpenSSL-Win64\bin'
最后记录下证书的密码,转换成功后就能得到相应的pfx文件,比如上图的fengkeyleaf_2023_6.pfx,接下来就是将新证书更新到Azure上面,并与自定义域名进行绑定。
4. 配置Azure自定义域名SSL证书
登录Azure,找到你的网站服务,进入Setting -> Certificates -> Bring your now certificates(.pfx),添加一个新的证书,并进行验证:
验证成功后,新生成的证书后添加到证书目录中:
最后在“Custom Domains",对自定义域名进行新证书的绑定:
因为手动生成证书没有自动更新功能,如需要更新证书,只需要重复上面操作即可。如有小伙伴发现可以自动更新的方法,可以留言或私信我呢~ 也欢迎大家来个人网站围观,或者提提意见哒~
5. 参考资料
- Using Certbot Manually for SSL certificates
- Convert a PEM Certificate to PFX format
- Azure App Service unable to validate .pfx file: Certificate failed validation because it could not be loaded
- Pixv Anime Illustration
6. 免责声明
※ 本文之中如有错误和不准确的地方,欢迎大家指正哒~
※ 此项目仅用于学习交流,请不要用于任何形式的商用用途,谢谢呢;