Nginx配置https

nginx -V查看版本和支持的配置

已经安装的nginx可能需要卸载

以ubuntu为例,卸载nginx

# 移除nginx
$ apt-get --purge remove nginx

# 查询 nginx以来的包,会列出来
$ dpkg --get-selections|grep nginx

# 移除上面列出的包,例如 nginx-common
$ apt-get --purge remove nginx-common

# 也可以执行 autoremove ,会自动删除不需要的包
$ apt-get autoremove

# 查询 nginx 相关的文件,删掉就可以了
$ sudo find / -name nginx*

安装依赖库

# gcc g++
apt-get install build-essential
apt-get install libtool

# pcre
sudo apt-get install libpcre3 libpcre3-dev

# zlib
apt-get install zlib1g-dev

# ssl
apt-get install openssl
apt-get install libssl-dev

安装nginx

到 nginx download 上找到最新的nginx 版本


# 下载
$ wget https://nginx.org/download/nginx-1.17.8.tar.gz
# 解压
$ tar -zxvf nginx-1.17.8.tar.gz
# 进入目录
$ cd nginx-1.17.8
# 配置,这里可能会报错,缺少啥就去安装啥
$ ./configure --prefix=/usr/local/nginx \
--with-http_gzip_static_module \
--with-http_v2_module \
--with-pcre \
--with-http_ssl_module

# 编译,这里可能会报错,缺少啥就去安装啥
$ make
# 安装
$ make install

# 通过软连接,这样就可以直接使用 nginx 执行
sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

SSL证书

SSL 证书通常需要购买,也有免费的,通过第三方 SSL 证书机构颁发。你也可以在云服务商上购买,但是一般免费的 ssl 证书只能支持单个域名。(腾讯云、阿里云等可以申请免费的)
这里推荐 Let’s Encrypt 机构,然后使用 acme.sh 从 letsencrypt 生成免费的证书,且可以生成泛域名证书。
参考 acme.sh 中文 wiki 、使用 acme.sh 部署 Let’s Encrypt 通过阿里云 DNS 验证方式实现泛域名 HTTPS

这里将证书放到了 nginx 的 conf 目录下。…/conf/ssl/…
配置 http
http 基础配置
http 的配置很简单,配置如下,我们先让网站可以访问起来。

server {
    listen  80;
    server_name     网站地址;

    location / {
        root /var/www/main;
        index index.html;
    }
}

配置https
Https 基础配置

server {
    listen                  443 ssl;
    server_name            网站地址;
    # 证书文件,这里使用了 fullchain.cer 通过 acme.sh 生成的泛域名证书
    ssl_certificate         ssl/名字.cer;
    # 私钥文件
    ssl_certificate_key     ssl/名字.key;

    location / {
        root /var/www/main;
        index index.html;
  }
}

修改 http 配置
但是用 http:// 访问,仍旧显示连接不安全,我们需要修改配置,当访问 http 时会重定向到 https 如下

server {
    listen  80;
    server_name     网站地址;

    return  301 https://$server_name$request_uri;
}

这时再用 http:// 访问,就会重定向到 https://
PS:
网上也有许多使用 rewrite 来重定向,但是 return 指令简单高效,建议尽量使用 return

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值