最近在做微信小程序,使用它们的免费服务器,上传文件感觉很不顺手,因为在修改后端代码时,有时可能会频繁上传,这样用它们的服务器就不爽了。所以需要自己配置个测试环境,必须使用https协议。那么就自己下手开弄吧,结果在配置证书后,使用HTTPS怎么弄也是不能正常访问,但还好,哥是无敌的,现在已经完美解决,记录如下:
基本环境:
阿里云服务器
CentOS系统(Linux)
wdCP服务器管理系统(v3.2.21)
阿里云申请的免费证书(Symantec 免费版 SSL)
WEB服务器(Nginx+Apache)
配置步骤如下:
1、获取免费CA证书;
2、上传证书,按WDCP的提示信息,在“保存文件名”处输入网站的域名,如:证书的域名是xxx.mrdede.com,那么就在“保存文件名”项输入xxx.mrdede.com;
3、WDCP中为指定网站“开启”或“强制开启”HTTPS(“开启”就是可以同时使用http和https访问网站,“强制开启”就是当使用http访问网站是自动跳转到https访问),提交保存。
4、查看Nginx配置文件,针对此网站的配置文件(以“域名.conf”命名的文件),在执行完成上一步就已经自动生成了。
下面是我的Nginx配置文件示例:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
server { listen 80; root /www/web/a_xxxxxx_com/public_html; server_name a.xxxxxx.com a.xxxxxx.com; index index.html index.php index.htm; error_page 400 /errpage/400.html; error_page 403 /errpage/403.html; error_page 404 /errpage/404.html; error_page 503 /errpage/503.html; location ~ \.php$ { proxy_pass http://127.0.0.1:88; include naproxy.conf; } location ~ /\.ht { deny all; } location / { try_files $uri @apache; } location @apache { internal; proxy_pass http://127.0.0.1:88; include naproxy.conf; } } server { listen 443; root /www/web/a_xxxxxx_com/public_html; ssl on; ssl_certificate cert/a.xxxxxx.com.pem; ssl_certificate_key cert/a.xxxxxx.com.key; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; server_name a.xxxxxx.com a.xxxxxx.com; index index.html index.php index.htm; error_page 400 /errpage/400.html; error_page 403 /errpage/403.html; error_page 404 /errpage/404.html; error_page 503 /errpage/503.html; location ~ \.php$ { proxy_pass http://127.0.0.1:88; include naproxy.conf; } location ~ /\.ht { deny all; } location / { try_files $uri @apache; } location @apache { internal; proxy_pass http://127.0.0.1:88; include naproxy.conf; } } |
5、查看443端口是否已开启,如果没有开启,点击“快速添加”。
6、重启Nginx服务器。
理论上讲,配置到这里就应该是可以使用https://域名/ 访问自己的网站了,但是事实是使用https不可以访问,使用http可以访问。
步骤没错,证书没错,证书命名没错。
使用SSH远程登录服务器,输入重启Nginx命令:
0 |
# service nginxd restart |
输出返回内容如下:
0 |
Restarting nginxd (via systemctl): [ OK ] |
有上面输出内容,说明配置正常,如果配置不正确的话,会有相应的错误提示的。
我卡在这里了,卡了大约三四天的时间,都卡蒙了。怎么想也想不通,怎么想也想不明白我错在哪里了。
但是我昨天使用本地电脑nmap工具测试服务器开放端口时,列表中没有443,但是使用如下命令:
nmap -p443 [IP]
输出结果中,端口状态为 filtered,我理解的意思就是端口是否开启还不明确,也就是说可能是开着的,也可能是关着的。
今天突然恍然大悟,以前一位客户使用的是阿里云的服务器,开新端口是要在服务商后台设置端口的安全策略的。
解决阿里云CentOS系统安装WDCP后无法打开http://ip:8080
上面这篇文章就是那次专门为了这个问题而写的。
在阿里云后台,增加了443端口策略后,使用https://域名/ 访问网站瞬间打开了。
解了,终于解了。