本文通过Let’s Encrypt获取免费的证书,缺点是需要三个月更新一次。
具体操作步骤如下:
- 安装certbot
yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
yum install certbot
如果报错找不到源,请先执行
yum install epel-release
获取证书
有两种验证方式certbot certonly --standalone -d rightdmp.com.cn -d www.rightdmp.com.cn -d console.rightdmp.com.cn -d dev.rightdmp.com.cn -d env.rightdmp.com.cn
第一种方式,生成的证书可以给多个二级域名使用,这种方式需要验证443端口,如果端口被占用会失败,如果提示congratulations,则表示成功。
certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com
这种方式需要在/var/www/example下生成文件验证。两种方式效果是一样的。
- Nginx 配置
如果上一步成功会在 /etc/letsencrypt/live/www.rightdmp.com.cn下生成证书。
nginx的配置如下:
server {
server_name www.rightdmp.com.cn rightdmp.com.cn;
listen 443;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.rightdmp.com.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.rightdmp.com.cn/privkey.pem;
location / {
proxy_passhttp://127.0.0.1:4999;
proxy_http_version 1.1;
proxy_set_header X_FORWARDED_PROTO https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
- 重启nginx,就可以https访问网站了,如果只有这一个nginx需要用到这个密钥,可以写个定时器,每三个月自动重新生成证书。