nginx 1.11.0实现http和https正向代理

本文提供了一套详细的Nginx HTTPS配置流程,包括私钥和证书的生成步骤,并展示了如何在Nginx中配置HTTPS服务。此外还讨论了自签名证书在浏览器中的信任问题。

编译安装时候加上这个--with-http_ssl_module

生成两个文件443.crt和443.key。crt是证书,key是私钥

1、先生成私key文件,再用之生成加密的私key文件
openssl genrsa -des3 -out p.key
随便写个密码
openssl rsa -in p.key -out 443.key
输入一遍建立p.key的那个密码,使用443.key的时候就不需要密码了

2、生成证书请求文件csr

openssl req -new -key 443.key -out 443.csr

Common Name要写此证书是用于哪个域名的,比如*.51cto.com

3、用证书请求文件csr和私key文件生成一个十年期限的CA证书crt文件
openssl x509 -req -days 3650 -sha1 -extensions v3_ca -signkey 443.key -in 443.csr -out 443_CA.crt

4、生成被CA证书文件签名过的证书文件crt

openssl x509 -req -days 3650 -in 443.csr -extensions v3_usr -CA 443_CA.crt -CAkey 443.key -CAcreateserial -out 443.crt

第四步也可以不执行,只需在下文的nginx配置文件里,把443.crt换成443_CA.crt。


 

http,nginx配置文件里这样写

server {
        listen       80;

        server_name ~^(.*);

    location / {
        resolver 172.16.168.2;
        proxy_pass http://$http_host$request_uri;
        proxy_set_header Host $http_host;

 

https,nginx配置文件里这样写

server {
        listen       443 ssl;

        ssl on;

        server_name ~^(.*);

        ssl_certificate /usr/local/nginx/conf/keys/443.crt;
        ssl_certificate_key /usr/local/nginx/conf/keys/443.key;

     location / {
        resolver 172.16.168.2;
        proxy_pass https://$http_host$request_uri;
        proxy_set_header Host $http_host;

 

客户端用https访问url肯定会看到不是安全连接的警告,用户只有忽略警告,才能正常访问。这就是不找认证机构交保护费导致的!hoho



本文转自 朱科强 51CTO博客,原文链接:http://blog.51cto.com/zhukeqiang/1795023,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值