nginx+宝塔面板配置https
前提条件:
-
已经购买服务器 已经安装宝塔面板 已经有域名 已经申请ssl证书
方法一: 使用宝塔面板一键配置https
- 实例使用的是腾讯服务器并且在腾讯买的域名;首先将申请好的ssl证书下载: 选择下载Nginx版:
- 打开宝塔面板>网站>设置: 随后点击弹出窗口右侧SSL,打开上述下载好的SSL证书文件夹,将.pem和.key结尾的文件分别用记事本打开后复制其中的内容到对应的输入框:
- 点击保存,开启强制HTTPS,大功告成!
方法二:使用nginx手动配置 https
- 下载对应SSL证书(和方法一版本一致),在将证书文件夹中的.pem,.key文件上传到对应文件夹下:/www/server/nginx/conf/
- 检查是否放行了443端口。随后打开宝塔面板的软件商店,找到nginx,点击设置,点击配置修改:‘
server { listen 80; listen 443 ssl http2; server_name example.com; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; # HTTPS start------ # 如果访问的不是443端口跳转到https协议 if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } # 上传的.pem和.key文件路径 ssl_certificate /www/server/nginx/conf/xxxxxx.pem; ssl_certificate_key /www/server/nginx/conf/xxxxxx.key; # 指定客户端可以重用会话参数的时间 ssl_session_timeout 10m; #表示使用的加密套件的类型。 ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; #表示使用的TLS协议的类型。 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 服务端加密算法优先 ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; # HTTPS end------ location / { root /home/; } }
- 点击保存,重启nginx
说明: 比如我们现在要访问https://example.com/images/user-img.png这样一张存放在服务器上的图片,当我们开启https服务后就可以通过上述方式访问,也能够通过http访问。因为http默认端口80,https默认端口443,当我们以80端口访问时就会被检测到不是443端口,从而强制切换到https协议即443端口。
这也是为什么同时listen 443 和 80 的原因~
下一篇:
Ubuntu下搭建WebDAV服务器