前期准备
- 注册好域名
- DNS设置好A记录
- cloudflare 先关掉代理,only DNS
- nginx
证书申请工具 acme.sh
使用该工具进行证书申请,这个比certbot好用
wiki使用说明在此 使用说明
1. 安装acme.sh
curl https://get.acme.sh | sh -s email=my@example.com
这里的邮箱是证书到期会发通知,其实随便填都可以
2. 申请证书
在申请证书前,请先配置nginx能解析该域名到端口
编辑nginx的配置
vim /etc/nginx/site-enable/default
server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
root /var/www;
}
server_name配置成要解析的域名,location / 随便解析到一个目录,acme.sh会自动完成验证并申请证书
nginx 使用这个命令进行证书申请
acme.sh --issue -d mydomain.com --nginx
3. 生成nginx配置
使用https://nginxconfig.io进行生成
安装指引,填写,然后下一步,直到完成。不需要的可以不勾选 nginx全局配置
全局配置主要设置一下工作线程,用户名,目录之类的,其他用不到的可以保持默认。
下载安装配置
按照提示,下载安装配置
4. 生成dhparam
OpenSSL 的 dhparam 用于生成和管理 dh 文件。dh(Diffie-Hellman) 是著名的密钥交换协议,它可以保证通信双方安全地交换密钥。
openssl dhparam -out /etc/nginx/dhparam.pem 2048
5. 安装证书
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"
记得这里的证书路径和nginxconfig.io上面配置的路径要一致
Cloudflare 配置
DNS里打开proxy,保护ip不暴露
因为我做了http强制转https的配置,需要在ssl/tls 里模式选择 完全
网友评论