(原创干货)微信小程序开发以及配置阿里云服务器

关于用阿里云配置成小程序服务器的相关问题,以下是全部配置步骤:

一、小程序注册及配置
1、注册:进入微信公众平台注册并认证
2、配置:
登录公众平台,点击设置,如图

点击开始配置,扫码认证之后即可进行服务器配置。( 注:配置每个月只能修改5次)



从上图可知,小程序必须设置请求合法域名才能进行数据交互,且合法域名规定需要使用HTTPS协议。所以阿里云服务器需支持HTTPS协议。

合法域名需进行备案才可使用,在无合法域名的情况下,我们可以在开发模式下去除对合法域名的校验,即可进行开发。

二、阿里云服务器支持HTTPS配置。
1、获取阿里云安全证书

登录阿里云,在管理控制台->证书服务->购买证书

选择免费版正式进行购买
每个证书对应一个域名,购买成功之后可以进行配置。配置成功之后提交审核,大概1~2个工作日可以审核成功。
审核成功之后,在我的订单中可以查看证书信息,点击下载

点击下载证书,可以选择不同的服务器类型下载,并附有安装证书的说明。证书下载之后压缩包中会有4个文件。

2、配置阿里云服务器,以phpstudy Apache为例。
方式一:
第一步:修改apache目录下的httpd.conf配置文件
#LoadModule ssl_module modules/mod_ssl.so删除行首的配置语句注释符号“#”
增加一条引用语句   Include conf/vhostssl.conf
第二步:在conf文件夹中创建一个vhostssl.conf配置文件。
编辑vhostsssl.conf文件,增加如下内容:
Listen 443
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "D:/ssl/2_www.****.com.crt"
SSLCertificateKeyFile "D:/ssl/3_www.***.com.key"
DocumentRoot  "D:\phpStudy\WWW"
<Directory />
Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
其中
SSLCertificateFile 是指证书公钥
SSLCertificateKeyFile   是指证书私钥
DocumentRoot  "D:\phpStudy\WWW"这是网站路径根据自己的
方式二:
第一步:修改apache目录下的httpd.conf配置文件
删除行首的配置语句注释符号“#”
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
第二步:同样修改文件中的参数
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile "D:/ssl/2_www.****.com.crt"
SSLCertificateKeyFile "D:/ssl/3_www.***.com.key"
DocumentRoot  "D:\phpStudy\WWW"
参数值在安装证书说明中有。安装成功之后重启服务器。


三、端口冲突检测

服务器重启过程中可能会出现错误。重启不了,或者启动之后自动停止。原因可能如下:
1、http服务需要占用80端口,mysql服务需要占用3306端口,检测方法如下:


2、由于HTTPS服务需要占用的是443端口,服务器中可能由进程占用端口,检测方法如下:

输入命令:netstat -ano,列出所有端口的情况
继续用命令 netstat -aon|findstr "443"  查看那个进程占用的,不是系统进程就直接结束他
在服务器环境一般都是被http 占用的 我们就用命令结束的它。用  net stop http  命令结束
重启phpstudy,这个时候Apache基本就能启动成功了
最后在.htaccess里加入 实现http转跳到https上
下列代码修改自己域名
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.chu.mn/$1 [R=301,L]</IfModule>


此时https服务器基本配置结束,可以正常运行。下面到小程序开发界面。
再次进行小程序变异,此时可能会出现的问题如图

小程序要求TLS版本必须大于等于1.2。

四、TLS1.2安转、配置及启用

1、打开windows powershell

右击屏幕左下角的开始->所有程序->附件->“Windows PowerShell”。


2、 在 PowerShell中运行以下内容, 然后重启服务器
# Enables TLS 1.2 on windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values.md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" # Enable TLS 1.2 for client and server SCHANNEL communications new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord" # Disable SSL 2.0 (PCI Compliance)md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord" # Enables TLS 1.2 on Windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values. md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" # Enable TLS 1.2 for client and server SCHANNEL communications new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "Enabled" -value 1 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server" -name "DisabledByDefault" -value 0 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "Enabled" -value 1 -PropertyType "DWord" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -name "DisabledByDefault" -value 0 -PropertyType "DWord" # Disable SSL 2.0 (PCI Compliance) md "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" new -itemproperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server" -name Enabled -value 0 -PropertyType "DWord"

3、 将php版本升级至php5.5n
php5.5需要加载VC11运行库,请自行下载
链接: https://pan.baidu.com/s/1boFhCXh 密码: 4v3b

4、当步骤二中 SSLProtocol 配置为 all -SSLv2 -SSLv3 时不管怎么更改始终会报 小程序要求TLS版本必须大于等于1.2。 的错误。
当更改为 SSLProtocol TLSv1 TLSv1.1 TLSv1.2 时服务器会启动不了,或启动自动停止。
解决方案:将此语句注释,即可。
SSLProtocol all -SSLv2 -SSLv3
#SSLProtocol all -SSLv2 -SSLv3
此时再次编译小程序可能会出现的问题是: net::ERR_CONNECTION_REFUSED,尚不知原因所在
完结。



版权所有,转载请注明出处。




猜你喜欢

转载自blog.csdn.net/yuanjuxiong/article/details/55518742
今日推荐