最近做微信小程序,需要进行https api配置,但是发现配置了,死活不行,就是无法访问
最后发现是nginx配置的问题:我里面有这两个配置,由于第一个配置的ssl启用,进行了注释,
但是端口忘记注释了
server {
listen 80;
listen 443 ssl http2;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_certificate ssl/market_onfancy_com.crt;
#ssl_certificate_key ssl/server.key;
server_name fecmall.com;
return 301 $scheme://www.fecmall.com$request_uri;
}
下面是我的网站的配置
server {
listen 80 ;
listen 543 ssl http2;
listen 443 ssl http2;
ssl on;
ssl_certificate /etc/letsencrypt/live/fecshop.appserver.fancyecommerce.com-aliyun/2396279_fecshop.appserver.fancyecommerce.com.pem;
ssl_certificate_key /etc/letsencrypt/live/fecshop.appserver.fancyecommerce.com-aliyun/2396279_fecshop.appserver.fancyecommerce.com.key;
#ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_name fecshop.appserver.fancyecommerce.com;
root /www/web/develop/fecshop/appserver/web;
server_tokens off;
include none.conf;
index index.php index.html index.htm;
access_log /www/web_logs/access.log wwwlogs;
error_log /www/web_logs/error.log notice;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
}
最终的解决,第一个配置ssl注释的不干净,需要全部注释才行
# listen 443 ssl http2;
注释完了,内容如下:
server {
listen 80;
# listen 443 ssl http2;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_certificate ssl/market_onfancy_com.crt;
#ssl_certificate_key ssl/server.key;
server_name fecmall.com;
return 301 $scheme://www.fecmall.com$request_uri;
}
这个问题非常的隐秘,一开始怀疑是阿里云的问题,折腾了2天,才发现是这里的问题,因此nginx的配置,ssl弃用了,要把注释全部注释掉,以免影响后面的配置。