- 一、申请免费证书
- 二、在 nginx 服务器上安装证书
- 三、nginx 配置证书
- 以下属性中,以ssl开头的属性表示与证书配置有关。
- 配置HTTPS的默认访问端口为443。
- 如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
- 如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
- 需要将yourdomain.com替换成证书绑定的域名。
- 需要将cert-file-name.pem替换成已上传的证书文件的名称。
- 需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
- 表示使用的加密套件的类型。
- 表示使用的TLS协议的类型。
- 后端的Web服务器可以通过 X-Forwarded-For 获取用户真实 IP
- 获取真实的请求主机名
- 标识该请求由 nginx 转发
- 代理到本地的 8080 端口服务
一、申请免费证书
- 阿里云搜ssl证书
- 如下图所示: 免费证书 -> 创建证书
通过后 下载证书到本地
二、在 nginx 服务器上安装证书
- 进入证书下载目录
- 启动cmd 执行 scp 下载的证书压缩文件名 root@服务器ip:/root 将证书上传到服务器上
- 举个例子🌰: scp 8603708_youtube.onino.vip_nginx.zip root@47.92.193.196:/root
- 输入密码
切换到服务器上
监听 443 ssl 端口。 80 端口是http 443端口是 https ```nginx
以下属性中,以ssl开头的属性表示与证书配置有关。
server { listen 443 ssl;
配置HTTPS的默认访问端口为443。
如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
需要将yourdomain.com替换成证书绑定的域名。
server_name yourdomain.com;
需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate cert/cert-file-name.pem;
需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
ssl_certificate_key cert/cert-file-name.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
表示使用的加密套件的类型。
表示使用的TLS协议的类型。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { proxy_set_header X-Real-IP $remote_addr;
后端的Web服务器可以通过 X-Forwarded-For 获取用户真实 IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
获取真实的请求主机名
proxy_set_header Host $http_host;
标识该请求由 nginx 转发
proxy_set_header X-Nginx-Proxy true;
代理到本地的 8080 端口服务
proxy_pass http://127.0.0.1:8080; } }
server { listen 80; server_name yourdomain.com; #需要将yourdomain.com替换成证书绑定的域名。 rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。 } ```
四、服务器防火墙允许访问 443
看看服务器所在安全组是否有443, 没有手动添加一下
此时完成 http -> https 的所有配置
👏 给自己鼓个掌吧