我们在测试环境中可能会遇到需要用https来做测试的时候,下面介绍一下怎么给测试环境中的私有域名颁发证书,能让测试环境也用上https
当前使用的测试环境:centos 7 + nginx,域名是随意写的: wp.aa
1、要用到的工具:
mkcert,下载地址:https://github.com/FiloSottile/mkcert/releases/latest
打开后有Linux和windows版本,mac版本需要使用brew安装
#macos专用
brew install mkcert
#下面这个可以不装
brew install nss
选择Linux-amd64 下载好Linux版以后要对该文件赋予执行权限,因为它是个脚本文件
chmod +x mkcert-v1.4.1-linux-amd64
这是官方说明文档:https://github.com/FiloSottile/mkcert
这里我们参照官方的方法来生成今天所需要的https证书
#首先安装根证书
./mkcert-v1.4.1-linux-amd64 -install
#生成域名证书
[root@centos ~]# ./mkcert-v1.4.1-linux-amd64 -key-file key.pem -cert-file cert.pem wahahahaohe.com *.wahahahaohe.com
Note: the local CA is not installed in the system trust store.
Note: the local CA is not installed in the Firefox trust store.
Note: the local CA is not installed in the Java trust store.
Run "mkcert -install" for certificates to be trusted automatically ⚠️
Created a new certificate valid for the following names ?
- "wahahahaohe.com"
- "*.wahahahaohe.com"
Reminder: X.509 wildcards only go one level deep, so this won't match a.b.wahahahaohe.com ℹ️
The certificate is at "cert.pem" and the key at "key.pem" ✅
It will expire on 26 October 2025 ?
[root@centos ~]# ls
cert.pem key.pem
[root@centos ~]#
这里生成了两个证书文件,在nginx站点配置文件中写入即可使用:
#证书路径根据实际环境配置
ssl_certificate SSL/cert.pem;
ssl_certificate_key SSL/key.pem;
mkcert的其他功能后续再研究,暂时先满足我们的需求。