因为小程序后台服务器需要是https的,所以这两天赶紧百度了一波什么是https以及怎么将服务器升级为https.虽然网上教程很多但因具体环境可能有差异导致一路遇坑,摸爬滚打了两天终于弄好了。遂记下一路填坑过程以防下次跌坑。
1、环境
腾讯云服务器,为图省事装的一个叫“康展云计算”提供的全能环境:centos7.0 apache2.X
2、具体步骤
升级为https需要有ssl证书,网上有很多申请的教程有付费的也有免费,还有说用自签名证书的(好像类似自己给自己签发证书,可以用于测试什么的)。跟着那些教程弄了半天还是没头绪。后来发现腾讯云本来就提供有免费申请ssl证书的,而且还提供了配置证书的教程。
既如此果断舍弃网上杂乱的教程,在腾讯云申请证书。但是有一点这里申请的证书只能一个证书一个域名(无论是一级域名还是二级域名),当然你可以多申请几个域名证书。在网上有看到说可以申请泛域名证书的,一级域名申请之后余下二级域名就都可以用了,以后有时间在慢慢折腾了解吧。
在腾讯云申请证书
这个通用名称既是你要开通https的域名名称
申请成功后
下载证书得到如下的文件
根据服务器选择里面的证书文件,然后就是按照腾讯给出的操作指导将证书配置到服务器
因为要编辑httpd-ssl.conf文件,在命令窗口操作很不习惯,所以字节用ftp吧文件下下来编辑完了在传上去覆盖旧文件。
按照教程在apache个目录下找到httpd-ssl.conf文件,可能是因为我用全能环境安装的原因我的apache文件夹叫apache2,但是这也不影响其他继续操作吧。
我打开的文件是这个样子的
那个“ _default_:443”就不管了。
配置DocumentRoot 为你域名访问的路径
ServerName
为你的域名,要跟你申请证书时填的一样
SSLCertificateFile /usr/local/apache/conf/2_www.domain.com_cert.crt
SSLCertificateKeyFile /usr/local/apache/conf/3_www.domain.com.key
SSLCertificateChainFile /usr/local/apache/conf/1_root_bundle.crt
这三个就是证书路径也就是之前下载下来的证书,你要先把他传到服务器上然后这里来配置他的路径
ok,这样配置完后重启一下apache
就可以用https访问你配置的域名了,访问其他域名还是不行的
然而却出现了一个问题能访问html文件却不能解析php文件,网上搜了好多资料只有一位同仁提到说
可是他却没给解决方案。。。。
后来我参照httpd.conf配置文件里的配置将
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:10000/yjdata/www/www/$1
DirectoryIndex index.html index.php
这两行粘过来放到<VirtualHost _default_:443>标签里
重启apache后发现还是不能解析php文件。。。。
再后来我发现<VirtualHost _default_:443>标签里好像有两个节点有问题
就是这两:
既然前面已经配置解释器,所以果断把这两个节点注释掉,
重启apache : service httpd restart
然后就ok!