Fork me on GitHub
随笔 - 215  文章 - 13  trackbacks - 0
<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456


专注即时通讯及网游服务端编程
------------------------------------
Openresty 官方模块
Openresty 标准模块(Opm)
Openresty 三方模块
------------------------------------
本博收藏大部分文章为转载,并在文章开头给出了原文出处,如有再转,敬请保留相关信息,这是大家对原创作者劳动成果的自觉尊重!!如为您带来不便,请于本博下留言,谢谢配合。

常用链接

留言簿(1)

随笔分类

随笔档案

相册

Awesome

Blog

Book

GitHub

Link

搜索

  •  

积分与排名

  • 积分 - 203829
  • 排名 - 127

最新评论

阅读排行榜

阿里云服务器如何设置IPV6通过appstore的审核

苹果上架要求:要求支持IPV6only(因为阿里云主机没有IPV6only)

确认IPV6是否开启:

方式1:使用ifconfig查看自己的IP地址是否含有IPv6地址。

方式2.查看服务监听的IP中是否有IPv6格式的地址。(netstat -tuln)

开启IPV6:

vim /etc/sysctl.conf

vim /etc/modprobe.d/disable_ipv6.conf

 

vim /etc/sysconfig/network

至此ipv6的服务器端支持已经完成,重启服务器测试是否支持ipv6,重启后, ifconfig查看ipv6的信息,有看到有关IPV6的输出就可以

 

添加ipv6隧道:

1. 注册Tunnel broker

https://www.tunnelbroker.net/
注册很容易,就不讲了,注册需要邮箱验证,,gmail、163能收得到认证邮件,qq还是一样收不到

 2.创建通道“Create Regular Tunnel”

填写云服务器ip以及选择默认的隧道节点,点击Create Tunnel创建。填写ip都,如果出现“IP is a potential tunnel endpoint.”则证明可以添加ipv6隧道,一般隧道节点系统已经默认分配,可以手动选择,大家可以在自己的云服务器上分别ping一下这些ip,选时延低的。

3.创建ipv6隧道及路由

到下一页面切换到Example configurations选项卡,如果你的VPS是centOS/Debian这些常见Linux的话,下拉菜单选择Linux-route2,出现了设置的命令,复制到自己的云服务器上运行。

 

4.测试ipv6

添加ipv6的dns服务器,在最后添加nameserver 2001:4860:4860::8888,nameserver 2001:4860:4860::8844谷歌的ipv6 dns服务器

复制代码
# vim /etc/resolv.conf
options timeout:1 attempts:1 rotate
nameserver x.x.x.x
nameserver x.x.x.x
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
复制代码
复制代码
# ping6 -c 5 ipv6.google.com
PING ipv6.google.com(tsa03s01-in-x0e.1e100.net) 56 data bytes
64 bytes from tsa03s01-in-x0e.1e100.net: icmp_seq=1 ttl=55 time=25.5 ms
64 bytes from tsa03s01-in-x0e.1e100.net: icmp_seq=2 ttl=55 time=25.5 ms
64 bytes from tsa03s01-in-x0e.1e100.net: icmp_seq=3 ttl=55 time=33.1 ms
64 bytes from tsa03s01-in-x0e.1e100.net: icmp_seq=4 ttl=55 time=25.5 ms
64 bytes from tsa03s01-in-x0e.1e100.net: icmp_seq=5 ttl=55 time=25.4 ms

--- ipv6.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4031ms
rtt min/avg/max/mdev = 25.473/27.040/33.180/3.073 ms
复制代码

阿里云服务配置

 代理配置好之后服务器中执行ifconfig命令,找到he-ipv6虚拟网卡,找到scope为Global 的ipv6地址,在阿里云后台配置AAAA记录为上面提到的ipv6地址

阿里云文档:https://help.aliyun.com/knowledge_detail/39813.html
在线测试:https://zh.infobyip.com/ping-ipv6.google.com-ipv6.html



适配IPv6遇到的坑,终极解决方案

http://blog.csdn.net/u010069091/article/details/51915179

6.1AppStore发布之后的应用要兼容IPv6。

然而我上个星期发布的版本并没有因为没兼容而被拒,这次提交却遇到IPv6兼容问。。。

 话不多说,上代码:

 +(NSString *) getIPWithHostName:(const NSString *)hostName
    {
    struct addrinfo * result;
     struct addrinfo * res;
    char ipv4[128];
    char ipv6[128];
    int error;
    BOOL IS_IPV6 = FALSE;
    bzero(&ipv4, sizeof(ipv4));
    bzero(&ipv4, sizeof(ipv6));

    error = getaddrinfo([hostName UTF8String], NULL, NULL, &result);
    if(error != 0) {
    NSLog(@"error in getaddrinfo:%d", error);
    return nil;
    }
     for(res = result; res!=NULL; res = res->ai_next) {
    char hostname[1025] = "";
    error = getnameinfo(res->ai_addr, res->ai_addrlen, hostname, 1025, NULL, 0, 0);
    if(error != 0) {
        NSLog(@"error in getnameifno: %s", gai_strerror(error));
        continue;
    }
    else {
        switch (res->ai_addr->sa_family) {
            case AF_INET:
                memcpy(ipv4, hostname, 128);
                break;
            case AF_INET6:
                memcpy(ipv6, hostname, 128);
                IS_IPV6 = TRUE;
            default:
                break;
        }
        NSLog(@"hostname: %s ", hostname);
    }
    }
    freeaddrinfo(result);
    if(IS_IPV6 == TRUE) return [NSString stringWithUTF8String:ipv6];
    return [NSString stringWithUTF8String:ipv4];
    }

这段代码即判断了是否IPv6环境并解析域名获得了IP地址。

测试

首先得配置IPv6网络环境,至于如何配置,自行百度"如何搭建IPv6的测试环境"


然而配置成功后,用手机连接的WiFi DNS也是正确的,运行程序测试怎么不成功呢,找了好多资料,猜测是DNS解析出了问题。


那就换另一种方法配置IPv6:拔掉网线,用mac连接WiFi(没有WiFi可以用手机流量分享热点),然后在共享中用前一种方法配置IPv6(不知道具体是共享到电脑那个端口,索性全点上),记得选中"创建NAT64 网络"。这时直接通过模拟器测试succeed! 

测试成功了。你以为就没问题了?这里提交依然可能被拒,手机和 Mac 之间是 IPv6 没错,但 Mac 和你的服务器之间还是 IPv4 连接。


如果这项测试通过,可以说明:你的客户端应用在 IPv6 网络下,是(基本)没有问题的,但是无法验证你的服务器能够对 IPv6 网络做出正确的响应。然而,苹果审核的时候,却是要去 DNS 服务器询问你的服务器的 IPv6 地址,然后进行访问。如果查询不到 IPv6 地址,可能会进而询问 IPv4 地址,然后进行转换使用。苹果明确表示服务器不需要支持 IPv6,但是有一点苹果没有指出来,那就是,虽然你的服务器不用支持 IPv6,但是必须正确响应 IPv6 的 DNS 查询。
 

如何验证呢??使用以下命令即可:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. $ dig +nocmd +nostats example.com AAAA  

如果返回的 status 为 NOERROR, 那基本就没什么问题,但是一定要在多个网络环境下测试都通过才行。如果返回的是其他的响应,尤其是 SERVFAIL 的情况,那就基本杯具了。由于你已经验证了客户端没有问题,现在要做的,就是催着你的运维、后台啥的,赶紧去改 DNS 配置,直到稳定返回 NOERROR 为止。

其他参考:http://blog.csdn.net/nil_lu/article/details/53809893
关于阿里云HTTPS协议的相关支持

一、获取HTTPS安全证书

在操作之前,请将你的域名的隐私保护去掉,让证书服务商能通过域名解析查看到域名管理者的邮箱,否则验证证书时会无法进行。

登录阿里云管理控制台,【云盾】菜单选择【证书服务】 
这里写图片描述

选择购买证书 
这里写图片描述

在购买页面,选择WoSign,沃通,免费版,多个域名,域名个数5个,1年。

目前沃通停了免费的证书服务,只有赛门铁克支持,大家按着沃通的方式来做吧,赛门铁克的流程我就不贴了。 
一帮商人!其实对于一个小网站来说,阿里应该跟腾讯一样,来个免费的证书服务,而不是通过接入第三方把这个小钱赚了

这里写图片描述

确认订单,支付, 
这里写图片描述

这里写图片描述

付款完成后,到我的订单里,可以看到刚刚买的服务,点击【信息补全】按钮,将你的网站地址输入,一般输入一个不带www.的和一个带www.的两个域名。 
这里写图片描述
这里写图片描述

如果你进入的是详情页就到你邮箱中看看阿里云给你发的邮件(邮箱是阿里云注册时用的邮箱) 
这里写图片描述

如果直接进入沃通网站进行信息补全就是这个界面:选择【验证域名所有权(待完成)】 
这里写图片描述

需要发送邮件到邮箱获取验证码,我的主机在购买时,送了我一个企业邮箱,所以就直接用域名对应的邮箱了,如果你没有域名邮箱,建议将域名保护关闭,然后再验证。当然,你还可以通过域名解析的方式处理。 
这里写图片描述

如果能通过邮件获取验证码,基本上,当时就可以下发证书。回到阿里云证书服务,可以看到订单状态。在我的证书标签页,如果看到申请的证书,就说明可以使用了。 
这里写图片描述

对于已签发的证书,我们就可以下载,下载后解压得到两个文件,一个key结尾,是私钥,一个pem结尾,是公钥。 
这里写图片描述

二、配置HTTPS证书 

到阿里云管理控制台【CDN】的【CDN域名列表中】,添加一个新的域名,选择图片小文件加速,类型IP,然后将阿里云虚拟主机的IP输入。端口一定选择80,不要选择443 
这里写图片描述

添加完成后,我们进行管理,开启证书状态,将刚才的pem结尾的公钥用文本编辑器打开,拷贝内容,粘贴到【证书内容】中。将私钥拷贝,粘贴到私钥中。 
注意:公钥的内容中-----END CERTIFICATE----------BEGIN CERTIFICATE-----之间是有空行的,需要将空行去掉

... -----END CERTIFICATE-----  -----BEGIN CERTIFICATE----- ...
  • 1
  • 2
  • 3
  • 4
  • 5

改成

... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...
  • 1
  • 2
  • 3
  • 4

另外需要将跳转类型设置为HTTP->HTTPS 
这里写图片描述

另外需要记住CNAME: 
CNAME: www.aitongyi.com.w.cab.com

因为下一步我们需要到域名管理控制台去修改网站的域名绑定信息。

CDN的基本信息配置完成后,我们需要解析缓存配置,就是告诉CDN,缓存那些内容。 
如果是阿里的免费虚拟主机,除了将html、css、js、png、jpg、ico等文件缓存外,一般会将整个css或者js目录缓存,因为有的js文件未来便于处理,都是用.jsv1.0.0来做结尾,避免js文件更新后无法获取最新版本。 
由于我是Hexo生成的静态网站,所以可以将整个网站目录进行缓存。 
这里写图片描述

三、域名绑定

在阿里云管理控制台中【域名】的【域名列表】点击域名的【管理】按钮,进入域名管理控制台。将原来的记录类型【A】,主机记录为www的解析修改一个为CNAME记录类型,将记录值修改为刚才的www.aitongyi.com.w.cab.com这个地址,保存即可。 
这里写图片描述

下一步我就就是在浏览器中输入:www.aitongyi.com,网站就会自动跳转到https://www.aitongyi.com/ 大功告成!

如果你的网站没有跳转到https或者网站请求没有反应,请等待10分钟左右,一般是设置没有及时生效导致的。

这里写图片描述

posted on 2017-04-14 12:31 思月行云 阅读(5160) 评论(0)  编辑 收藏 引用 所属分类: 服务器\Ops

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理