Nginx配置ssl实现https访问

网站搭建 专栏收录该内容
16 篇文章 0 订阅

本文主要实现网站可以通过https://域名来访问.

一、申请SSL证书


可以在阿里云或者购买域名的网站进行申请免费SSL证书

这里以阿里云的SSL证书申请进行演示:

1.1 阿里云服务器首页

可以看到安全预警下面有SSL证书去配置的链接, 进入SSL证书页面.
在这里插入图片描述

1.2 SSL证书页面

进入SSL证书页面后, 点击购买证书 -> 前往购买页
在这里插入图片描述

1.3 SSL证书购买详情页

进入购买详情页, 如图勾选直接购买即可.
在这里插入图片描述

1.4 SSL证书申请

在这里插入图片描述
填入下面信息, 其他的默认设置, 选择手工DNS验证.
在这里插入图片描述
生成如图所示的DNS信息
在这里插入图片描述

1.5 SSL证书DNS解析

在这里插入图片描述
在这里插入图片描述
添加成功后, 进行验证, 添加正确的话会显示成功状态, 这时等待6分钟左右, 证书会申请下来.

1.6 证书下载

申请成功后, 下载Nginx对应的即可
在这里插入图片描述
下载好后, 进入Linux服务器进行Nginx进行配置.



二、Nginx配置ssl


2.1 证书上传服务器

进入到目录/etc/ssl/目录中, 可以创建文件夹web_ssl, 进入文件夹后, 使用rz命令, 进行文件上传, 包括XXX.pemXXX.key文件

cd /etc/ssl

# 创建文件夹
mkdir web_ssl

cd web_ssl

rz

# 选择对应的SSL证书文件, XX.pem和XX.key文件

2.2 修改防火墙指定端口

这里包括两个地方, 一个是阿里云服务器中安全的防火墙, 另一个就是Linux服务器的防火墙, 这两个都要打开Nginx配置的端口443

2.2.1 阿里云服务器的防火墙

如图所示说明 阿里云服务器的 443 端口是开放的, 没有的话则需要手动添加.
在这里插入图片描述

2.2.2 Linux服务器的防火墙

# 查看已经开放的端口号
$ firewall-cmd --list-all

可以看到下图是没有开放443端口的, 我也在这卡了好久 😦 都配置好了, 就是连不上, 气!
在这里插入图片描述

# 对外开放访问的端口
$ firewall-cmd --add-port=443/tcp --permanent
# 重新加载防火墙设置
$ firewall-cmd --reload

这时重新查看开放的端口

在这里插入图片描述
OK, 443端口已经添加上, 最后就只剩Nginx的配置了

2.3 Nginx配置

进入Linux服务器安装的Nginx的安装目录下, 然后进入conf目录, 修改nginx.conf文件

 # HTTPS server

    server {
        listen       443 ssl;
        # 网站域名
        server_name  www.xxx.com(网站域名对应修改);

		# 之前上传ssl证书的路径, 对应修改XXX即可
        ssl_certificate      /etc/ssl/web_ssl/XXX.pem;
        ssl_certificate_key  /etc/ssl/web_ssl/XXX.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

		# 这里用到了反向代理, 可以根据你的80端口的localtion进行填写
        location / {
            root   html;
            proxy_pass    http://127.0.0.1:8083;
            index  index.html index.htm;
        }
    }

Tip:(重要)

这里添加了, 你的网站可以通过 https:xxx.com 进行访问了, 也可以通过 https://xxx.com:443 正常访问了. 但是如果浏览器中只输入 xxx.com的话, 可以还是访问的是 http://xxx.com, 这样不手动输入 https://, ssl有点白设置了, 所以在你的 nginx配置中的80端口里面添加下面这句 将 http:xxx.com重定向到 https://xxx.com:443 即可

将这句填到如图中的位置
rewrite ^/(.*)$ https://域名:443/$1 permanent;

在这里插入图片描述

2.4 重启Nginx

配置好后, 重启Nginx即可~

# 停止
$ ./nginx -s stop

# 启动
$ ./nginx


# 查看nginx是否启动成功
$ ps -ef|grep nginx





[参考文献]

感谢阅读, 希望可以帮助到你

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值