使用nginx以及openssl实现https转http

解决方案:

在对工程升级访问协议的时候,其实可以通过代理或者对tomcat进行配置,我是通过tomcat进行设置,通过jdk 生成证书,步骤如下:

	使用keytool命令生成证书tomcat.keystore
	
	keytool -genkey -v -alias tomcat -keyalg RSA -keystore tomcat.keystore -validity 36500
	
	注意:最后一步的输入tomcat密钥口令一定要和第一步输入的密码一致,不然tomcat启动就报错

出现的问题:

在请求网站的过程中发现,存在很多资源无法访问的情况,因为我们在打开首页的时候,又去请求了其他服务器下的资源。百度一番发现原来是,在https页面只通过https 去请求资源,网上有很多的人说可以去掉请求的协议,浏览器会默认通过https请求,失败转而使用http请求,但是这里我做了处理之后仍然不起作用,不知道是不是ajax请求不起作用,(有空测试下在补充)。所以没有办法,只能通过使用nginx代理https。其中ngnix 以及openssl使用如下。

  • nginx

	由于在window中使用nginx,直接下载nginx的压缩包,解压之后,配置
	    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.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;
    #    }
    #}

	ex:
    将上面的打开进行配置,在配置中需要提供证书,所以通过openssl进行证书生成

  • openssl
    同样是在window下使用,所以直接下载安装程序,网上有说官网提供了Win32OpenSSL_Light-1_1_0h.exe,下载之后,安装提示要把ddl放在system还是自己的选择的目录中,果断选择自定义的bin目录。之后进行证书生成,步骤如下:
    1) 生成RSA私钥
    openssl genrsa -des3 -out server.key 1024

    2) 生成签名
    openssl req -new -key server.key -out server.csr

    3) 根据已生成的RSA私钥输出无加密的私钥
    openssl rsa -in server.key -out server_nopass.key

    4) 使用签名和私钥生成crt证书
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    *注意: *记住在nginx 配置的时候,在window中把生成的证书放在nginx conf目录中,否则会出现找不到证书的错误

仍然出现问题:

	由于是openssl签发的证书,并不能在代码,比如我使用ajax请求对应的地址可以成功,一般我们请求https 地址,如果是不受信任的证书,浏览器都会提示,私密链接,我们会选择高级继续访问,如果不是有效的证书,在代码中调用依然是不成功的。
	
	fine,白忙活了,当做学习一波吧~~~~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值