收藏
回答

【转】微信小程序服务器配置-suse版

本文主要内容:

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 yourname.key -out yourname.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.wecareinfo.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.wecareinfo.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 yourname.key -outyourname.key.unsecure

然后修改http-ssl.conf配置文件:SSLCertificateKeyFile  "/opt/app/a pache/conf/yourname.key.unsecure"

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

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





                                                                                                        原作者:huazai123(简书作者)      出自:http://www.jianshu.com/p/9b3ba3192c87#    

                                                                                        

回答关注问题邀请回答
收藏

3 个回答

  • 🍞
    🍞
    2018-01-25

    刚处理完误封问题,又被误封了。官方有什么机制去处理吗?

    https://developers.weixin.qq.com/blogdetail?action=get_post_info&docid=0002449179c510b2843663a7051400&token=1956210581&lang=zh_CN

    2018-01-25
    有用
    回复
  • 🍞
    🍞
    2018-01-25

    你敢回复我帖子吗?现在小程序还处于被误封状态

    2018-01-25
    有用
    回复
  • 华仔
    华仔
    2016-12-13

    多谢转发我的文章,不过原文有更新噢~

    2016-12-13
    有用
    回复
登录 后发表内容