用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

2017-5-2 15:29:24 天下雪原创达人 造轮子 人生巅峰 楼主 117073
目前很多同学遇到了这个问题,并且难以解决,所以,我想咨询一下同学们,是否搞过,可以说一下自己的方法或者服务器设置步骤;

其实说起来这个并不是小程序的问题。。。但是既然我们的开发者困在了这个,还是想集中一下大家的经验;

也可以说一下自己参考的文章也可以;

别忘记了说自己的服务器的类型,比如win2008R2

报错信息:
QQ图片20170502152812.png

顺便@一下同学们:
@287637915
@dzp
@duan602728596
@Seside
@dannyvid
@脑补剑士
@Xzavier
@howard
@小象牙
@工程师tim
@li541464750
@songzeng
@清风迅来
@jwq782108446

有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
安装证书的时候可以给定版本吧,tomcat是这样sslEnabledProtocols = "TLSv1,TLSv1.1,TLSv1.2"

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

我用leanCloud不存在这些证书和协议的问题,不需要我自己去解决

如果在安卓4.X上报错:

在4.x系统上通过HTTPS进行访问产生如下异常:

javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x65bc0ad8: Failure in SSL library, usually a protocol error
error:1407743E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert inappropriate fallback (external/openssl/ssl/s23_clnt.c:744 0x5cf4ed74:0x00000000)
解决方案
我们首先想到的是,可以让服务器配置兼容支持TLS1.0、TLS1.1、TLS1.2,这样客户端就不需要做任何处理,完美兼容
参考:http://www.itnose.net/detail/6703553.html

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 本身就是一种解决方案

查看全部评分

甩给后台解决。。。。如你是全栈开发,可以用leancloud

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

天气查询小程序,欢迎大家使用,后续会有更多的功能融合进来
                              我的小小网站
         

也有问题咨询可加vx: jwq782108446
感谢楼上三位同学的回复,我也把网上一些内容给总结一下,以便参考:其实都是百度到的,实在惭愧。。。
{:5_1398:}假如以下内容有问题或者无法使用,请回复告知我,,假如你有更多可以参考的内容,也欢迎告知我;

服务器操作系统版本要求(支持TLS1.2)
WIN 2008 R2 IIS 7 以上版本
CentOS 6+  OpenSSL 1.0.1c+
Apache 2.4 +
Nginx 1.0.6+
JDK1.7
tomcat7.0.56+

相关文章:
https系列:http://www.wxapp-union.com/portal.php?mod=list&catid=17


网上的其他一些可参考的内容:
request:fail ssl hand shake error 微信小程序(已解决!!) TLS1.2版本配置
苹果ATS特性服务器配置指南
win2008R2/Win7启用TLS 1.2实践在Windows服务器上启用TLS 1.2及TLS 1.2基本原理
Windows 2008 如何启用 TLS1.1 1.2
解决jdk1.7 不支持TLS1.2的问题



附录一:搭建微信小程序基本的https与wss环境(作者:wade)
主要是怎么搭建一个线上环境以及怎么不改动原有http Api的情况
1、准备工作

域名一个
免费证书(推荐: 腾讯云、阿里云、便宜ssl 都是免费的 配置好后先将证书下载下来)
Centos服务器一台
nginx 1.10.2

1.png
2、 安装nginx
安装教程 http://www.runoob.com/linux/nginx-install-setup.html
  注意安装的时候 编译 --with-stream --with-stream_ssl_module 两个模块
  如果启动nginx报错看下图解决

2.png
3、 配置nginx实现ssl反向代理
  将下载好的证书根据自己的服务器选择证书这里选择nginx证书
  主要用到server.crt以及server.key两个证书上传到服务器
  这里我们直接上传到nginx目录的conf下了

3.png
修改nginx.conf(有注释的地方改 其他的保持原样就行了)
[AppleScript] 纯文本查看 复制代码
#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remote_user [$time_local]             "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       8090; #这里将原来的80端口改成8090 
        server_name  xxx.xxx.xxx; #这里就写你自己的域名就行了
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ .php$ {
        #    proxy_pass   [url=http://127.0.0.1]http://127.0.0.1[/url];
        #}
        # pass the PHP scripts to FastCGI server listening on                         127.0.0.1:9000
        #
        #location ~ .php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /.ht {
        #    deny  all;
        #}
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include /usr/nginx/conf/wss.conf;# 这里我们将反向代理新建一个文件引入进来
    client_max_body_size    3m;# 上传大小单位M 微信小程序上传大图片时可能需要设置
}
新建wss.conf
[AppleScript] 纯文本查看 复制代码
#主要是配置原来的ws 和 http 接口
upstream websocket {
    server 10.5.11.xxx:8283;# 远程websocket服务器地址
}
upstream web{
    server [url=http://www.xxx.com]www.xxx.com[/url];# 远程http接口
}
# 通过下面的反向代理到上面的接口去
server {
    listen 443;#默认https和wss协议端口
    ssl on;
    ssl_certificate /usr/nginx/conf/server.crt;#你的上传到服务器的证书位置
    ssl_certificate_key /usr/nginx/conf/server.key;#你的上传到服务器的证书位置
    ssl_session_timeout 5m;
    ssl_session_cache shared:SSL:50m;
    ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    underscores_in_headers on;#开启自定义头信息的下划线
    #wss协议转发 小程序里面要访问的链接
    location /wss {
        proxy_pass http://websocket;#代理到上面的地址去
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }
    #https协议转发 小程序里面要访问的链接
    location /{
    proxy_pass http://web;#代理到原有的http的地址去
    proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    add_header Access-Control-Allow-Origin *;#跨域访问设置
    }
}



附录二:如何设置windows server 2008 r2 tls1.2
小程序wx.request 调用需要服务器侧为tls 1.2,否则PC开发环境,苹果手机等调用都会失败,在windows server 2008 r2 下, 按如下帖子指示操作成功。
http://tecadmin.net/enable-tls-on-windows-server-and-iis/#
当然前提是已经配置好了 https, 可以在阿里云申请免费证书,并按其指示配置成功。
中文的可以看这个:
https://www.howtoing.com/enable-tls-on-windows-server-and-iis/



新增案例:(提供者:汪军-花猫)
1,首先是request 一直返回 失败,fail  返回errMsg 才会显示错误信息 ,官方文档中没有体现!
2,由于买的是腾讯云,win2008 r2 没有升级到TSL1.2 所以需要手动升级,升级前需要检测 给一个检测地址:https://www.qcloud.com/product/ssl#userDefined10   花了一个晚上才找到的!资源太少了!这个也是腾讯云提供的 还提供了怎么升级~!
3,使用的ssltools工具升级  工具地址:http://www.trustasia.com/down/ssltools.zip
ssltools.zip (821.69 KB, 下载次数: 9)
有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
2017-5-3 17:02:00 287637915优秀会员纪念 版主
6#
1、我是用一个国际免费的网址申请的,可以百度下,比较简单的申请步骤(免费一年);
2、如果是阿里云的话会有提供免费的(我是阿里云啊,竟然没有先发现,等到期后再说)

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

2017-5-11 09:33:35 Seside开发者认证 诠释者
7#
我们用的是阿里云的,没啥问题
我想问问大家,求大家给个解决办法,我们公司搭配师windowsserver2008R2+apache+phpstudy,这份搭配,我用你们说的方法,都试了,没效,还把服务器搞得重装了2次,求大神指导
287637915 发表于 2017-5-3 17:02
1、我是用一个国际免费的网址申请的,可以百度下,比较简单的申请步骤(免费一年);
2、如果是阿里云的话 ...

大神啊https,配好了,但是TLS1.2一直搞不好,ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;  一写这行代码apache就启动不了,注释就不报了,
aaaaaaaa 发表于 2017-5-31 16:58
大神啊https,配好了,但是TLS1.2一直搞不好,ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;  一写这 ...

没搞过Apache哦,我的是iis
找空白大神@空白
喝彩科技官网gh_b8f2d1676832_430.jpg
2017-7-21 09:08:16 287637915优秀会员纪念 版主
12#

这样打广告也行啊
发新帖
您需要登录后才可以回帖 登录 | 立即注册