阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx配置HTTPS详细说明

153次阅读
没有评论

共计 2303 个字符,预计需要花费 6 分钟才能阅读完成。

TLS 或传输层安全(transport layer security),它的前身是 SSL(安全套接字层 secure sockets layer),是 Web 协议用来包裹在一个受保护,加密封装正常通道。采用这种技术,服务器和客户端之间可以安全地进行交互,而不用担心消息将被拦截和读取。证书系统帮助用户在核实它们与连接站点的身份。

环境说明

Nginx*2+Keepalived+Tomcat* 2 的 Web 环境搭建详细请看:https://www.linuxidc.com/Linux/2018-06/152740.htm

实验环境下配置

1、下载 openssl:yum install openssl* -y

2、使用 openssl 生成数字证书
    mkdir -p /etc/nginx/ssl
    openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.pem

    Country Name (2 letter code) [AU]:US
    State or Province Name (full name) [Some-State]:New York
    Locality Name (eg, city) []:New York City
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Bouncy Castles, Inc.
    Organizational Unit Name (eg, section) []:Ministry of Water Slides
    Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
    Email Address []:admin@your_domain.com

3、Nginx 下的配置(只启用 Https)
    server {
        listen      80;
        server_name  www.yourdomain.com;
        rewrite ^ https://$http_host$request_uri? permanent;    # force redirect http to https
        #return 301 https://$http_host$request_uri;
    }

server {
        listen 443 ssl;
        ssl_certificate /etc/nginx/ssl/nginx.pem;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        keepalive_timeout  70;
        server_name www.yourdomain.com;
      #禁止在 header 中出现服务器版本,防止 *** 利用版本漏洞 ***
        server_tokens off;
        #如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
        #add_header Strict-Transport-Security “max-age=31536000; includeSubdomains”;
        # ……
        fastcgi_param  HTTPS              on;
        fastcgi_param  HTTP_SCHEME        https;

        access_log      /var/log/nginx/wiki.xby1993.net.access.log;
        error_log      /var/log/nginx/wiki.xby1993.net.error.log;
    }

4、同时使用 Http 和 Https

Nginx 下配置

server {
    listen              80;
    listen              443 ssl;
    server_name        www.example.com;
    ssl_certificate    www.example.com.pem;
    ssl_certificate_key www.example.com.key;
    …
}

5、重启 Nginx

openssl 的说明

req: 配置参数 -x509 指定使用 X.509 证书签名请求管理 (certificate signing request (CSR)).”X.509″ 是一个公钥代表 that SSL and TLS adheres to for its key and certificate management.
-nodes: 告诉 OpenSSL 生产证书时忽略密码环节.(因为我们需要 Nginx 自动读取这个文件,而不是以用户交互的形式)。
-days 36500: 证书有效期,100 年
-newkey rsa:2048: 同时产生一个新证书和一个新的 SSL key(加密强度为 RSA 2048)
-keyout:SSL 输出文件名
-out: 证书生成文件名
它会问一些问题。需要注意的是在 common name 中填入网站域名,如 wiki.xby1993.net 即可生成该站点的证书,同时也可以使用泛域名如 *.xby1993.net 来生成所有二级域名可用的网站证书。

企业 Web 服务器的 HTTPS

一、申请,购买 CA 证书
    一般各大云服务提供商都会有此类证书服务,根据公司和业务需求,可以自己选择免费或者付费的证书。
二、下载并解压证书文件
    一个 zip 包,里面有 xxx.key 和 xxx.pem 两个文件。
三、配置 Nginx(同上)

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2303字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中