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

經(jīng)過(guò)幾天的踩坑,終于把微信小程序服務(wù)器配置好了,下面是具體的步驟,以下均按照阿里云的suse11 sp3服務(wù)器操作。

本文主要內(nèi)容:

1、配置瀏覽器認(rèn)可的HTTPS;

2、配置wss協(xié)議的websocket。

一、配置Apache 支持HTTPS

1、安裝openssl

1.1、去官網(wǎng)下載http://www.openssl.org/source/,然后安裝,具體命令在此不給出

1.2、安裝完成后,設(shè)置path路徑,查看是否安裝成功:

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

source /etc/profile

openssl version

1.3、生成服務(wù)器私鑰和對(duì)應(yīng)的csr文件

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

1.4、生成服務(wù)器證書(shū)

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

不過(guò)這種方式的證書(shū)瀏覽器一般是不信任的,會(huì)出現(xiàn)類似12306那樣的警告,解決辦法請(qǐng)看第三節(jié)。

二、配置php版?ssl ?websocket服務(wù)器

1、安裝libopenssl-devel

下載網(wǎng)址:http://www.convirture.com/repos/deps/SLES/11.x/x86_64/

rpm -ivh ?libopenssl-devel.xxx.rpm

2、安裝swoole,并啟用ssl

去官網(wǎng)下載最新的安裝包:

解壓然后進(jìn)入解壓目錄:tar -zxvf swoole.xx.tar.gz

phpize

啟用openssl:

./configure --enable-openssl

make && make install

3、啟用swoole擴(kuò)展

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

4、重啟Apache

用微信小程序開(kāi)發(fā)工具連接wss即可


三、高級(jí)--安裝瀏覽器認(rèn)可的證書(shū)

這個(gè)方法可以省去購(gòu)買證書(shū)的錢(qián)

進(jìn)入網(wǎng)頁(yè):https://www.startssl.com/

注冊(cè)一個(gè)賬號(hào),然后驗(yàn)證域名


然后點(diǎn)擊發(fā)送驗(yàn)證碼,輸入驗(yàn)證碼即可,然后生成crt文件


第一欄輸入要生成的證書(shū)的子域名,一行一個(gè)

第二欄輸入要服務(wù)器生成的csr文件,必須微2048位,然后提交即可生成crt文件

下載證書(shū):


上傳證書(shū)到服務(wù)器,然后配置httpd-ssl.conf如下圖所示


重啟Apache即可看到證書(shū)被瀏覽器信任。


參考網(wǎng)址:https://www.freehao123.com/startssl-ssl/

四、擴(kuò)展--利用Nginx進(jìn)行ssl代理轉(zhuǎn)發(fā)

如果覺(jué)得Apache配置openssl麻煩,也可以通過(guò)Nginx進(jìn)行代理轉(zhuǎn)發(fā),不過(guò)需要Nginx啟用ssl和安裝openssl。

先從官網(wǎng)下載最新源碼,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";

}

}

參考網(wǎng)站:http://codego.net/450201/

五、注意事項(xiàng)

1、如果編譯swoole的時(shí)候提示GCC版本過(guò)低,可以編輯 vi /opt/tools/web/swoole-src-1.8.13-stable/swoole_config.h,將以下文件語(yǔ)句屏蔽即可


2、編譯的時(shí)候如果提示找不到openssl,請(qǐng)安裝libopenssl-devel開(kāi)發(fā)包,安裝完后還是提示沒(méi)有openssl,請(qǐng)先安裝完Nginx后再編譯安裝。

3、生成證書(shū)的時(shí)候,秘鑰的位數(shù)和申請(qǐng)的時(shí)候一定要一致,不然網(wǎng)站會(huì)訪問(wèn)不了。

4、每次啟動(dòng)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、微信小程序開(kāi)發(fā)工具連不上websocket的時(shí)候,請(qǐng)換個(gè)端口,原因未知。

7、如果出現(xiàn)下面類似情況,請(qǐng)啟用Apache相關(guān)模塊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容