Nginx服务器中安装SSL证书
环境
- 腾讯云域名
- 为个人博客配置https
前提条件
- 已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。
- 已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
- 已在当前服务器中安装配置 Nginx 服务
操作步骤
- 获取证书
1.1 在腾讯云域名页面可以看到申请免费证书,如下图: - 1.2 选择亚洲诚信免费申请的就可以了,一般有效期为一年。
- 1.3 按照要求填写相关信息,在一个工作左右就可以收到证书,一般几分钟就行。
- 证书安装
2.1 申请成功证书之后,直接下载。
2.2 解压后的文件如下,由于我们是使用nginx服务器配置只需关注nginx下的文件即可:
2.3 使用WinSCP将证书nginx目录下的文件拷贝至你的服务器安装Nginx服务的配置路径中;
- 默认路径:
/usr/local/nginx/conf
- 自定义路径:如下图,即nginx安装目录下。
- 修改配置文件
3.1 修改配置文件
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name xxx.today www.xxx.today;
client_max_body_size 1024m;
#证书文件名称
ssl_certificate 1_sumu.today_bundle.crt;
#私钥文件名称
ssl_certificate_key 2_sumu.today.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
# 反向代理地址,注意 /
proxy_pass http://127.0.0.1:8090/;
proxy_redirect off;
# 代理请求头
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 将http请求转发至https
server {
listen 80;
server_name xxx.today www.xxx.today;
return 301 https://$server_name$request_uri;
}
}
- 重启nginx
4.1 nginx基本命令
- 检查配置文件:nginx -t -c nginx.conf
- 重新加载配置文件:nginx -s reload
- 重启Nginx:nginx -s reopen
- 停止Nginx: nginx -s stop
4.2 修改完配置文件后,首先检查配置文件有没有错误。
出现successful即代表配置文件没有问题。
4.3 依次执行以下命令,就配置成功了。
5.遇到的问题
问题1:重启nginx提示:nginx: [warn] conflicting server name “www.xxx.com” on 0.0.0.0:443, ignored
答案1:说明www.xxx.com域名有重复,在多个配置文件中存在,可以检查以下配置文件。
问题2:无法访问显示503问题。
答案2:检查你的反向代理,本地的路径有没有错误。