在上篇文章中我已经介绍了如何在云端服务器中搭建微信小程序可访问的ThinkPHP接口。https://www.jianshu.com/p/e7125b69bf14
在浏览器中输入:http://公网IP/api/v1/getUserTasks?user_id=2,确实可以返回数据,但这和域名访问还是有着很大的区别,差异性先略过,只说微信小程序的request网络请求只支持HTTPS以及域名请求。是不支持http和IP地址登录的。
接下里讲解如何将你的IP绑定到你的域名中。以及申请SSL证书,顺利将http转换为HTTPS
此时你就可以用你的域名替换你的公网IP访问PHP接口了。
image.png
当然此时你的访问方式还是http,因为你还没有未你的域名申请SSL证书,你可以随便去网上搜索一下,免费的ssl证书,(https://freessl.cn/),当然是有期限的。然后你需要下载证书(nginx版本证书)
你会选择证书验证类型,我选的是file验证,会下载一个TXT文件(fileauth.txt),然后放在你得服务器下,具体操作你申请证书的时候会有详细的步骤,我大体说一下,把你下载的我呢间放在你服务器跟目录下面(.well-known/pki-validation/fileauth.txt),你必须手动验证你得URL没有问题,然后进行下面验证即可。
证书文件“证书名称.pem‘’,包含两段内容,请不要删除任何一段内容。
如果是证书系统创建的CSR,还包含:证书私钥文件“证书名称.key”。
然后需要创建一个文件夹用来存放你的下载的这些文件。我在我 的nginx安装目录下面的conf文件夹,创建ssl文件夹,把SSL证书放在里面。
我的文件路径为:
image.png
最后上传文件显示为:
image.png
,在Xshell可以用 rz 命令上传文件。
然后你需要在你的nginx.conf文件中配置路径以及PHP解析。在你的这个文件夹中有个server代码,监听80端口,然后你可以复制该server代码,把监听端口改成443,并且添加SSL文件的配置。
不要忘记把你的server_name替换成你的域名
ssl on; ssl_certificate /usr/local/nginx/conf/ssl/chen001.pem; //这里的路径为我的ssl文件绝对路径 ssl_certificate_key /usr/local/nginx/conf/ssl/chen001.key; //这里的路径为我的ssl文件绝对路径 ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
image.png
image.png
然后就可以使用HTTPS加域名访问你的PHP接口文件了。
image.png
当你全部工作完成时,或许还有可能会出现一种情况,在有的平台上面(比如:win10,iOS12 ……)访问https接口没有问题,但是在另一些平台或许有点问题,你可以检测你的域名的详细报告(https://myssl.com/ssl.html),可以看到证书兼容性等详细内容。