一、申请免费证书

  • 阿里云搜ssl证书
  • 如下图所示: 免费证书 -> 创建证书

image.png
image.png
image.png
通过后 下载证书到本地

二、在 nginx 服务器上安装证书

  • 进入证书下载目录
  • 启动cmd 执行 scp 下载的证书压缩文件名 root@服务器ip:/root 将证书上传到服务器上
    • 举个例子🌰: scp 8603708_youtube.onino.vip_nginx.zip root@47.92.193.196:/root
    • 输入密码
  • 切换到服务器上

    • pwd
    • ls 可以看到刚刚上传的压缩文件
    • cd /etc/nginx
    • cd cert 没有的话 创建一个
    • mv ~/证书压缩文件 . (最后面有个点) 将证书移动到cert 文件中
    • unzip 证书压缩文件 解压文件 没有unzip的话 安装一下
    • rm 压缩文件包 (删除证书压缩文件)
    • image.png

      三、nginx 配置证书

  • 监听 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, 没有手动添加一下
image.png

image.png

此时完成 http -> https 的所有配置
👏 给自己鼓个掌吧