windows下nginx配置证书实现https访问

遇到一个问题:
在一台外网服务器 https的程序页面里,访问另一台内网服务器的http 端口8088的url图片。

想要正常访问就需要给内网服务器配置证书。

我这里是用nginx代理

1、下载Nginx

(1)官网地址 http://nginx.org/en/download.html

我这里下载的版本是 1.4.7

(2)下载完成后是一个压缩包,解压到磁盘任意目录,例如这里我解压到了:D:\Servers\nginx-1.4.7

在这里插入图片描述
(3)打开cmd跳转到nginx目录下,运行nginx

  • 运行命令:start nginx.exe
  • 停止 : nginx -s stop
  • 重新加载:nginx -s reload

如果不行的话试试这个:nginx
在这里插入图片描述
我这里是直接输入nginx启动的

2、Nginx配置

在这里插入图片描述
找到nginx.conf文件,打开修改配置。
找到server那个大括号,我这里只修改了listen 端口改成10001,其他的都没变动。

server {
        listen       10001;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

修改完成后,重新启动nginx,可以用页面看一下是否成功。
在这里插入图片描述

Windows下Nginx开机自启参照:
https://www.cnblogs.com/thyshare/p/14228101.html

3、Nginx配置证书

把生成好的证书放在conf目录下,我这里是申请好的阿里云的证书。

如果没有证书可以自己试着生成一个,可以参考
https://www.cnblogs.com/vincent-li666/p/5851463.html
https://blog.csdn.net/daily886/article/details/79268644

在这里插入图片描述
然后打开nginx.conf

找到下面被注掉的HTTPS那一块

  • 原本的代码:
# HTTPS server
#
#server {
#    listen       443;
#    server_name  localhost;

#    ssl                  on;
#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;

#    ssl_session_timeout  5m;

#    ssl_protocols  SSLv2 SSLv3 TLSv1;
#    ssl_ciphers  HIGH:!aNULL:!MD5;
#    ssl_prefer_server_ciphers   on;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}
  • 修改过后的代码:
server {
        listen       10002 ssl;
        server_name    localhost;
		#rewrite ^(.*)$  https://$host$1 permanent;
		#rewrite ^(.*)$  http://$host:8088$1;
		
    
        ssl_certificate      D:/Servers/nginx-1.4.7/conf/cacertkey/a.pem;
        ssl_certificate_key  D:/Servers/nginx-1.4.7/conf/cacertkey/a.key;
    
        #ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;
    
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
    
        location / {
            root   html;
            index  index.html index.htm;
			proxy_pass http://127.0.0.1:8088;
        }
}

浏览器访问图片:
在这里插入图片描述

到此解决。

4、配置证书过程遇到的问题

(1)解决Nginx报错The plain HTTP request was sent to HTTPS port
在这里插入图片描述
在这里插入图片描述
注掉红框里那一行解决。

(2)转发重定向的问题

  • 修改前:

一开始写的rewrite ^(.*)$ http://$host:8088$1;

如图浏览器输入地址:
在这里插入图片描述
回车之后:
在这里插入图片描述
在这里插入图片描述
发现就算不加permanent也会重定向,并且会把8088端口带出来,出现在浏览器的herder里。

  • 修改后:
  • 在这里插入图片描述

改成了在location里面加入一行proxy_pass http://127.0.0.1:8088;
我的图片地址是http://127.0.0.1:8088/后面一大推

改完之后https://192.168.90.2:10002/转发到http://192.168.90.2:8088/
在这里插入图片描述

记录过程,没有对nginx进行详解,有需要的小伙伴可以www.baidu.com哦!

参考博文:https://blog.csdn.net/u014153701/article/details/47831109

https://www.cnblogs.com/czlun/articles/7010604.html

https://www.cnblogs.com/vincent-li666/p/5851463.html(包含证书生成)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值