博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx+Https配置
阅读量:5966 次
发布时间:2019-06-19

本文共 2681 字,大约阅读时间需要 8 分钟。

TLS或传输层安全( transport layer security),它的前身是SSL(安全套接字层secure sockets layer),是Web协议用来包裹在一个受保护,加密封装正常通道。

采用这种技术,服务器和客户端之间可以安全地进行交互,而不用担心消息将被拦截和读取。证书系统帮助用户在核实它们与连接站点的身份。

步骤1:Create the SSL Certificate

sudo mkdir /etc/nginx/sslsudo openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

创建了有效期100年,加密强度为RSA2048的SSL密钥key和X509证书文件。

参数说明:

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来生成所有二级域名可用的网站证书。
整个问题应该如下所示:

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

步骤2: Configure Nginx to Use SSL

首先配置HTTP请求重定向

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.crt;        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;    }

如果想同时启用HTTP和HTTPS

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

步骤3:重启nginx

sudo service nginx restart

附录1、证书格式说明

.crt:自签名的证书

.csr:证书的请求(用于向证书颁发机构申请crt证书时使用,nginx配置时不会用到)
.key:SSL Key (分为不带口令和带口令版本)。
我们自签名证书配置nginx需要的是.crt证书,和不带口令的SSL Key的.key文件。

附录2、可靠的第三方SSL证书颁发机构

目前一般市面上针对中小站长和企业的 SSL 证书颁发机构有:

StartSSL
Comodo / 子品牌 Positive SSL
GlobalSign / 子品牌 AlphaSSL
GeoTrust / 子品牌 RapidSSL

参考:

更多参考资料:

转载地址:http://zqtax.baihongyu.com/

你可能感兴趣的文章
JS 运行、复制、另存为 代码。
查看>>
一个经典编程面试题的“隐退”
查看>>
阿里公共DNS 正式发布了
查看>>
Java抓取网页数据(原网页+Javascript返回数据)
查看>>
[转载] 推荐的C++书籍以及阅读顺序
查看>>
EasyUI基础入门之Pagination(分页)
查看>>
ORACLE中CONSTRAINT的四对属性
查看>>
python 迭代器 生成器
查看>>
dorado基本事件样例
查看>>
Unity寻路的功能总结
查看>>
Python访问PostGIS(建表、空间索引、分区表)
查看>>
quick-cocos2d-x开发环境Lua for IntelliJ IDEA的安装
查看>>
Target-Action回调模式
查看>>
换个红圈1微信头像恶搞一下好友
查看>>
Socket网络编程--简单Web服务器(3)
查看>>
ylbtech_dbs_article_五大主流数据库模型
查看>>
Java并发专题 带返回结果的批量任务运行 CompletionService ExecutorService.invokeAll
查看>>
10行Python代码解决约瑟夫环(模拟)
查看>>
一个简单好用的日志框架NLog
查看>>
超级硬盘数据恢复软件 4.6.5.0注冊码破解版
查看>>