资讯专栏INFORMATION COLUMN

Nginx 配置 https相关问题

nifhlheimr / 2300人阅读

摘要:证书生成完毕后,可以在中找到四配置当用访问时重定向至重启服务,即可使用访问该网站五其他自动更新证书证书只有天的有效期,所以在证书到期之前,我们需要重新获取这些证书,可以使用这个命令。

一、Nginx基础
1.概念:
Nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

正向代理服务器:一般作用在客户端,位于客户端和服务器之间,客户端发送请求到代理,代理将请求发送到服务器,服务器返回的响应也经由代理到客户端。客户端必须要进行一些特别的设置才能使用正向代理,正向代理允许客户端通过它访问任意网站并且隐藏客户端自身。

反向代理服务器:作用在服务器端,它在服务器端接收客户端的请求,然后将请求分发给具体的服务器进行处理,然后再将服务器的相应结果反馈给客户端。

二、Https基础
1.概念

Http(超文本传输协议)被用于浏览器和web 服务器之间传递消息,http协议以明文方式发送内容,不提供任何方式的数据加密,因此攻击者可以截取传输报文获取信息。
为了数据传输的安全,在http的基础上加入了ssl协议就成了https协议,ssl依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

2.SSL——Secure Sockets Layer安全套接层

SSL协议位于TCP/IP协议与各种应用层协议之间,可分为两层:
(1)SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
(2)SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议上,用于在实际的数据传输开始前,通讯双方进行身份验证、协商加密算法、交换加密密钥等。

三、获取免费证书
1.概念

采用Https的服务器必须从证书颁发机构CA(Certificate Authority)申请一个用于证明服务器用途类型的证书,有收费的也有免费的,也可以通过OpenSSL自己造一个证书,不过浏览器是不信任你自己造的证书的,在访问时,会提醒”您的连接不是私密连接“,在这我们使用的是Let"s Encrypt免费证书。

2.获取步骤

(1) 安装Let"s Encrypt推荐获取证书的客户端 Certbot
sudo apt-get install certbot
(2)获取证书(两种模式)

--webroot模式
certbot certonly --webroot /var/www/example -d example.com -d www.example.com

这个命令会为 example.com 和 www.example.com 这两个域名生成一个证书,会在 /var/www/example 中创建 .well-known 文件夹,这个文件夹里面包含了一些验证文件,certbot 会通过访问 example.com/.well-known/acme-challenge 来验证你的域名是否绑定的这个服务器。

--standalone模式
certbot certonly --standalone -d example.com -d www.example.com

这种模式不需要指定网站根目录,他会自动启用服务器的443端口来验证域名的归属,所以如果有其他服务(如nginx)占用了443端口sudo lsof -n -P|grep:443,需要先停止这些服务,在证书生成完毕后,再启用。

证书生成完毕后,可以在/etc/letsencrypt/live/example.com中找到

四、Nginx配置
server {
    listen 443;
    server_name example.com www.example.com;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;   
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    location / {
                 proxy_pass              http://localhost:port/;
                 proxy_redirect          off;
                 proxy_set_header        Host $host;
                 proxy_set_header        X-Real-IP       $remote_addr;
                 proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                 proxy_read_timeout      600;
                 gzip on;
                 gzip_disable "MSIE [1-6].(?!.*SV1)";
                 client_max_body_size 10M;
                 gzip_vary on;
                 gzip_proxied any;
                 gzip_comp_level 6;
                 gzip_buffers 16 8k;
                 gzip_http_version 1.1;

                 gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

    }
    
}
server{   //当用http://...访问时重定向至https://...
    listen 80;   
    server_name  example.com www.example.com;
    return  301 https://www.example.com;
}

重启Nginx服务,即可使用https://www.example.com访问该网站

五、其他
1.自动更新证书

let"s Encrypt证书只有90天的有效期,所以在证书到期之前,我们需要重新获取这些证书,可以使用certbot renew这个命令。(如果生成证书时使用--standalone模式,更新证书时也要暂停当前443端口运行的程序)

2.Nginx详细配置项解析

详见:Nginx配置文件(nginx.conf)配置详解

3.Nginx错误处理

先用sudo nginx -t检测下配置文件,再看下错误日志,之后Google。
详见:Nginx常见错误与解决办法

5.相关命令

开启Nginx服务 sudo nginx -c /path/to/nginx.conf

重启Nginx sudo nginx -s reload

检测nignx配置 sudo nginx -t

暂停nginx服务

ps -ef|grep nginx 查看nginx占用的进程

sudo kill -QUIT 28478 (28478为nginx的主进程号)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39683.html

相关文章

  • 一文教您如何通过 Docker 搭建反向代理 Ngnix,并配置 Https SSL 证书

    摘要:由于上面我们已经新建了一个配置文件,这里就直接将反向代理的配置写在里面通过配置,我们反向代理到了端口的服务。六最后本文中,我们学习了如何通过快速搭建环境,并对其配置证书和反向代理,让网站能够以协议来访问。 欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习、面试资源哟!!个人网站: https://www.except...

    ZHAO_ 评论0 收藏0
  • 阿里云免费购买SSL证书,nginx无缝升级https

    摘要:选择域名授权验证方式,您需要到您的域名解析服务商如万网新网等提供的系统中进行配置。例如,您的域名托管在阿里云,则需要到云解析控制台进行相关配置。生成之后的域名验证,在域名解析管理可以看到。 最近在升级交流学习社区,觉得有必要升级成https.以下是自己在升级中记录。 以下包括以下部分: 一、阿里云免费购买SSL证书 1、自己在阿里云申请了免费的,然后自己支付0元,购买了SSL证书 2、...

    rollback 评论0 收藏0
  • 阿里云免费购买SSL证书,nginx无缝升级https

    摘要:选择域名授权验证方式,您需要到您的域名解析服务商如万网新网等提供的系统中进行配置。例如,您的域名托管在阿里云,则需要到云解析控制台进行相关配置。生成之后的域名验证,在域名解析管理可以看到。 最近在升级交流学习社区,觉得有必要升级成https.以下是自己在升级中记录。 以下包括以下部分: 一、阿里云免费购买SSL证书 1、自己在阿里云申请了免费的,然后自己支付0元,购买了SSL证书 2、...

    shery 评论0 收藏0
  • 阿里云免费购买SSL证书,nginx无缝升级https

    摘要:选择域名授权验证方式,您需要到您的域名解析服务商如万网新网等提供的系统中进行配置。例如,您的域名托管在阿里云,则需要到云解析控制台进行相关配置。生成之后的域名验证,在域名解析管理可以看到。 最近在升级交流学习社区,觉得有必要升级成https.以下是自己在升级中记录。 以下包括以下部分: 一、阿里云免费购买SSL证书 1、自己在阿里云申请了免费的,然后自己支付0元,购买了SSL证书 2、...

    AWang 评论0 收藏0
  • CentOS 7.2环境搭建实录(第一章:环境配置nginx安装)

    摘要:第一章环境配置和安装前提备注为了学习相关内容,笔者在网上买了个服务器,忙活了两天终于把相关的环境搭建起来了,所有的软件用的都是最新版,所以踩了很多的坑,现在把这些步骤写出来,给大家提供一个参考,因为第一次写文章,肯定有不足的地方,请大家多多 第一章:环境配置和nginx安装 前提备注 为了学习python相关内容,笔者在网上买了个服务器,忙活了两天终于把相关的环境搭 建起来了,...

    jsliang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<