wamp3.0.6配置https + Nginx转发 + 满足微信小程序的接口调用域名

4 篇文章 0 订阅
1 篇文章 0 订阅

环境:winserver2012 R2 wamp环境

安卓无法发起请求https://www.jianshu.com/p/61695bfae5f7?utm_campaign

一、  wamp3.0.6 这个版本的mod_ssl.so 应该是存在问题,使用这个是配置不成功的。

解决办法:

1) 将wamp2.5中的mod_ssl.so复制到 wamp64\bin\apache\apache2.4.23\modules,

2) 同时还复制了libeay32.dll,openssl.exe,ssleay32.dll;

由于当时是先执行的第2步后执行的第1步,所以不太确定第2步是否一定是必须的。

这里的openssl.exe 可能还存在一个坑,  可能会报2个错误

1) 未识别的什么什么序数 (这个 是直接运行openssl.exe的时候出现的)

2 )Cannot load modules/mod_ssl.so into server: (命令行执行httpd.exe -t 的时候出现的)

3 )缺少mvcR11;(这个好像也是直接运行openssl.exe的时候出现的) 哈哈 由于这是后补的笔记,不记得具体的名字了。

解决办法:

问题1和2:自己安装openssl https://slproweb.com/products/Win32OpenSSL.html 选择Light 的应该就可以,这里我不确定,是因为两个版本的我都安装了~ 

问题3: 其实就是安装VC++2012 https://www.microsoft.com/zh-CN/download/details.aspx?id=30679; x86和x64的最好都装

这些处理完之后wamp应该可以正常启动了,前提是下面的工作你已经做好了。

 

二 、 wamp支持https需要修改的配置文件:

1 配置conf/httpd.conf:

找到如下行并去掉#

#LoadModule ssl_module modules/mod_ssl.so

# Include conf/extra/httpd-ssl.conf

另外,要确认以下两行至少有一行是去掉#的:

LoadModule socache_dbm_module modules/mod_socache_dbm.so

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

 

2 配置conf/extra/httpd-ssl.conf

Listen 443
 
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
 
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4
  
SSLHonorCipherOrder on
  
SSLProtocol TLSv1 +TLSv1.1 +TLSv1.2
 
SSLProxyProtocol all -SSLv3
  
SSLPassPhraseDialog  builtin
  
SSLSessionCache  dbm:d:/wamp64/bin/apache/apache2.4.23/logs/ssl_scache"
 
#SSLSessionCache "shmcb:d:/wamp64/bin/apache/apache2.4.23/logs/ssl_scache(512000)"
 
SSLSessionCacheTimeout  300
  
<VirtualHost _default_:443>
  
DocumentRoot "d:/wamp64/www"
ServerName tryservice.*******.com:443
#ServerAdmin admin@tryservice.*******.com
ErrorLog "d:/wamp64/logs/apache/apache_error.log"
TransferLog "d:/wamp64/logs/apache/access.log"
  
SSLEngine on
  
SSLCertificateFile "d:/wamp64/cert/tryservice/public.pem"
SSLCertificateKeyFile "d:/wamp64/cert/tryservice/214************.key"
SSLCertificateChainFile "d:/wamp64/cert/tryservice/chain.pem"
 
<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>
##
<Directory "d:/wamp64/bin/apache/apache2.4.23/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
##
  
BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
  
CustomLog "d:/wamp64/logs/apache/ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
 
</VirtualHost>    

三、 Nginx转发

由于我的需求是为 小程序提供接口,但是我的服务器上部署了很多应用,有php的环境也有java的环境。这里踩了很多坑。

需求:

1 小程序的回调地址要配置为ip+端口模式 :  https://xxx.xxx.com:9999

2 PC端浏览要隐藏端口号

3 同时要支持wamp中的多个项目使用都正常

解决办法:

小程序的文档有要求,我的理解就是要么白名单和程序里都带端口,要么都不带端口;我选择都带端口。此时PC端也是需要带 端口才能正常访问的,这个时候就需要用ngnix做个转发,其实配置不复杂,当时理清这个逻辑关系的时候还是花了一点时间。也是自身水平有限。。。

问题1:上面配置Apache的https即可

Ngnix配置

问题2 由于给小程序用,必须要https的,所以除了上面配置了Apache的https,Nginx也需要配置https,这是个人理解,没有验证。目前这种配置是正常使用的。

注意:rewrite  和 proxy_pass 有区别, rewrite  浏览器里还会显示端口号。proxy_pass就不会了,如果是http协议就把ssl协议的相关配置去掉即可

	
	server {
		listen 443 ssl;
		server_name xxx.xxx.com;
		#rewrite ^(.*)$ https://$host:你的服务端口号$1 permanent;
		
		ssl_certificate     SSL证书存放的路径,这里用的绝对路径/xxx.pem;
		ssl_certificate_key   SSL证书存放的路径,这里用的绝对路径/xxx.key;
		
		ssl_session_cache    shared:SSL:1m;
		ssl_session_timeout  5m;
		
		ssl_ciphers  HIGH:!aNULL:!MD5;
		ssl_prefer_server_ciphers  on;
		
		location / {
			proxy_pass				https://127.0.0.1:你的服务端口号;
			proxy_set_header		Host $host;
			proxy_set_header		X-Real-Ip $remote_addr;
			proxy_set_header		X-Forwarded-For $proxy_add_x_forwarded_for;	
			proxy_set_header   		X-Forwarded-Proto $scheme;
		}
		
	}

 问题3:

	server {
		listen 80;
		server_name xxx1.xxx1.com;

		location / {
			proxy_pass				http://127.0.0.1:你的另一个服务端口;
			proxy_set_header		Host $host;
			proxy_set_header		X-Real-Ip $remote_addr;
			proxy_set_header		X-Forwarded-For $proxy_add_x_forwarded_for;	
			proxy_set_header   		X-Forwarded-Proto $scheme;
		}
		
	}

 

这一套全搞完,就完成了wamp3.0.6配置https服务,为小程序提供接口。同时满足浏览器访问隐藏端口号。欢迎大神拍砖!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值