背景
现在公网服务都使用https协议,需要ssl证书。如果不是企业一般申请各云服务商提供的免费ssl证书就可以,这里以腾讯云获取ssl免费证书并在nginx中配置为例进行介绍。
获取腾讯云ssl证书
1、访问ssl证书申请页面:https://console.cloud.tencent.com/ssl
2、点击【申请免费证书】

3、以域名:xxx.test.com为例,如果域名在腾讯云可以选择自动dns验证;
如果不在腾讯云域名需要手动为域名添加解析,然后点击【验证域名】,验证成功后很快可以在证书列表中看到证书。


4、下载证书
验证通过后,可以看到下载按钮


这里提供了多种服务器类型的证书,选择自己需要的进行下载,下面以nginx证书为例。
nginx服务配置ssl证书
1、上传证书
以1panel服务的证书配置为例,将1panel.test.com_bundle.crt、1panel.test.com.key上传到服务器。
比如路径为:/etc/nginx/ssl

2、为1panel服务配置证书
vim /etc/nginx/conf.d/1panel.conf
server {
listen 443 ssl;
server_name 1panel.test.com;
if ($allowed_ip = 0) {
return 403;
}
ssl_certificate /etc/nginx/ssl/1panel.test.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/1panel.test.com.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:28102;
}
}
server {
listen 80;
#请填写绑定证书的域名
server_name 1panel.test.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}
3、重启nginx
sudo systemctl restart nginx至此,nginx已经可以通过https协议访问1panel。为了方便可以定制化一个页面将证书上传到/etc/nginx/ssl目录下,并重启nginx,这样如果有多个服务可以节省很多时间,大大提高更新证书的效率。
评论