美文网首页@IT·互联网程序员
微信小程序PHP服务器配置(https+wss)-suse版

微信小程序PHP服务器配置(https+wss)-suse版

作者: AI看舌 | 来源:发表于2016-11-23 16:41 被阅读3142次

    经过几天的踩坑,终于把微信小程序服务器配置好了,下面是具体的步骤,以下均按照阿里云的suse11 sp3服务器操作。

    本文主要内容:

    1、配置浏览器认可的HTTPS;

    2、配置wss协议的websocket。

    一、配置Apache 支持HTTPS

    1、安装openssl

    1.1、去官网下载http://www.openssl.org/source/,然后安装,具体命令在此不给出

    1.2、安装完成后,设置path路径,查看是否安装成功:

    vi /etc/profile 在文件末尾加入 export PATH="$PATH:/usr/local/ssl/bin/" 这句

    source /etc/profile

    openssl version

    1.3、生成服务器私钥和对应的csr文件

    openssl req -newkey rsa:2048 -keyout server.key -out server.csr

    1.4、生成服务器证书

    openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 365

    2、Apache启用ssl

    2.1、在httpd.conf中找到下面两行去掉前面的注释 #

    LoadModule ssl_modulemodules/mod_ssl.so

    Include conf/extra/httpd-ssl.conf

    2.2、配置httpd-ssl.conf

    SSLCertificateFile "/opt/app/apache/conf/server.crt"

    SSLCertificateKeyFile  "/opt/app/a pache/conf/server.key"

    2.3、重启Apache

    service httpd restart

    不过这种方式的证书浏览器一般是不信任的,会出现类似12306那样的警告,解决办法请看第三节。

    二、配置php版 ssl  websocket服务器

    1、安装libopenssl-devel

    下载网址:http://www.convirture.com/repos/deps/SLES/11.x/x86_64/

    rpm -ivh  libopenssl-devel.xxx.rpm

    2、安装swoole,并启用ssl

    去官网下载最新的安装包:

    解压然后进入解压目录:tar -zxvf swoole.xx.tar.gz

    phpize

    启用openssl:

    ./configure --enable-openssl

    make && make install

    3、启用swoole扩展

    在php.ini加入: extension=swoole.so

    4、重启Apache

    用微信小程序开发工具连接wss即可

    三、高级--安装浏览器认可的证书

    这个方法可以省去购买证书的钱

    进入网页:https://www.startssl.com/

    注册一个账号,然后验证域名

    然后点击发送验证码,输入验证码即可,然后生成crt文件

    第一栏输入要生成的证书的子域名,一行一个

    第二栏输入要服务器生成的csr文件,必须微2048位,然后提交即可生成crt文件

    下载证书:

    上传证书到服务器,然后配置httpd-ssl.conf如下图所示

    重启Apache即可看到证书被浏览器信任。

    参考网址:https://www.freehao123.com/startssl-ssl/

    四、扩展--利用Nginx进行ssl代理转发

    如果觉得Apache配置openssl麻烦,也可以通过Nginx进行代理转发,不过需要Nginx启用ssl和安装openssl。

    先从官网下载最新源码,zlib, zlib-devel并安装

    ./configure  --prefix=/opt/app/nginx  --with-http_ssl_module  –with-http_stub_status_module  --with-openssl=openssl源码路径

    make && make install

    配置文件如下:

    server {

    listen  6443 ;

    server_name  api.test.com;

    ssl_certificate      /opt/app/nginx/conf/server.crt;

    ssl_certificate_key  /opt/app/nginx/conf/server.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://api.test.com;

    proxy_set_header    Host $host;

    proxy_set_header    X-Real-IP  $remote_addr;

    proxy_set_header    X-Forwarded-For $remote_addr;

    proxy_http_version  1.1;

    proxy_set_header    Upgrade $http_upgrade;

    proxy_set_header    Connection  "upgrade";

    }

    }

    参考网站:http://codego.net/450201/

    五、注意事项

    1、如果编译swoole的时候提示GCC版本过低,可以编辑 vi /opt/tools/web/swoole-src-1.8.13-stable/swoole_config.h,将以下文件语句屏蔽即可

    2、编译的时候如果提示找不到openssl,请安装libopenssl-devel开发包,安装完后还是提示没有openssl,请先安装完Nginx后再编译安装。

    3、生成证书的时候,秘钥的位数和申请的时候一定要一致,不然网站会访问不了。

    4、每次启动ssl需要输入密码,不需要密码的解决办法

    openssl rsa -in server.key -out server.key.unsecure

    然后修改http-ssl.conf配置文件:

    SSLCertificateKeyFile  "/opt/app/a pache/conf/server.key.unsecure"

    5、查看端口占用:netstat -anp | grep 9502

    6、微信小程序开发工具连不上websocket的时候,请换个端口,原因未知。

    7、如果出现下面类似情况,请启用Apache相关模块

    相关文章

      网友评论

        本文标题:微信小程序PHP服务器配置(https+wss)-suse版

        本文链接:https://www.haomeiwen.com/subject/hssvpttx.html