由于微信小程序需要使用https配置服务器,刚好之前购买了3年的阿里云ECS,故研究了一下,特此Mark下。
首先,需要在阿里云有个万网的域名,之前做项目下了血本,买了好几个,刚好还有库存,不用再去备案
一、阿里云控制台-》域名与网站(万网)-》域名-》域名列表
点击操作栏里的SSL证书,进入证书的申请,有付费也有免费的,本教程用于测试,使用的是免费的证书(一个域名下,一次只能添加一个证书,最多申请3个免费证书用于测试。)
二、输入要申请的域名,如:www.abc.com,之后就等待阿里云自动审核,一会就OK了
三、通过后,在SSL证书列表的操作栏里,点击下载,下载对应平台的证书,并参考阿里云提供的教程去配置服务器
四、由于本人的服务器是apache,所以安装过程如下:
1. 证书文件1531573628367.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件1531573628367.key、证书公钥文件public.pem、证书链文件chain.pem。
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为1531573628367.key;
#cd /usr/local/apache56/ #mkdir cert
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句(PS:不用每一句都配置,该步骤仅供参考,重点在第4步):
# 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile cert/public.pem # 证书私钥配置 SSLCertificateKeyFile cert/1531573628367.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/chain.pem
( 4 ) 在conf/extra/httpd-ssl.conf中配置相应的VirtualHost,有多个证书需配置的,直接复制,然后修改下目录和域名等信息
<VirtualHost *:443> DocumentRoot "/data/weixin/stock" ServerName www.abc.com ServerAdmin admin@linuxeye.com ErrorLog "/data/wwwlogs/abc_error_log" TransferLog "/data/wwwlogs/abc_access_log" <Directory "/data/weixin/stock"> SetOutputFilter DEFLATE Options FollowSymLinks ExecCGI Require all granted AllowOverride All Order allow,deny Allow from all DirectoryIndex index.html index.php </Directory> SSLEngine on SSLCertificateFile "/usr/local/apache56/cert/www.abc.com/public.pem" SSLCertificateKeyFile "/usr/local/apache56/cert/www.abc.com/214828082520020. key" SSLCertificateChainFile "/usr/local/apache56/cert/www.abc.com/chain.pem" <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/apache56/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache56/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>
( 5 ) 重启 Apache。
#service httpd restart
( 6 ) 添加相应的域名解析A记录(关键)
这样就差不多了,后续有问题再更新,如果还不行的话,检测下防火墙是否正常,服务器是否正常监听443端口等,也可私信我,有在线的话会帮忙解答的!