蘋(píng)果上架要求:要求支持IPV6only(因?yàn)榘⒗镌浦鳈C(jī)沒(méi)有IPV6only)
確認(rèn)IPV6是否開(kāi)啟:
方式1:使用ifconfig查看自己的IP地址是否含有IPv6地址。


方式2.查看服務(wù)監(jiān)聽(tīng)的IP中是否有IPv6格式的地址。(netstat -tuln)

開(kāi)啟IPV6:
vim /etc/sysctl.conf

vim /etc/modprobe.d/disable_ipv6.conf

vim /etc/sysconfig/network

至此ipv6的服務(wù)器端支持已經(jīng)完成,重啟服務(wù)器測(cè)試是否支持ipv6,重啟后, ifconfig查看ipv6的信息,有看到有關(guān)IPV6的輸出就可以

添加ipv6隧道:
1. 注冊(cè)Tunnel broker
https://www.tunnelbroker.net/
注冊(cè)很容易,就不講了,注冊(cè)需要郵箱驗(yàn)證,,gmail、163能收得到認(rèn)證郵件,qq還是一樣收不到
2.創(chuàng)建通道“Create Regular Tunnel”
填寫(xiě)云服務(wù)器ip以及選擇默認(rèn)的隧道節(jié)點(diǎn),點(diǎn)擊Create Tunnel創(chuàng)建。填寫(xiě)ip都,如果出現(xiàn)“IP is a potential tunnel endpoint.”則證明可以添加ipv6隧道,一般隧道節(jié)點(diǎn)系統(tǒng)已經(jīng)默認(rèn)分配,可以手動(dòng)選擇,大家可以在自己的云服務(wù)器上分別ping一下這些ip,選時(shí)延低的。

3.創(chuàng)建ipv6隧道及路由
到下一頁(yè)面切換到Example configurations選項(xiàng)卡,如果你的VPS是centOS/Debian這些常見(jiàn)Linux的話,下拉菜單選擇Linux-route2,出現(xiàn)了設(shè)置的命令,復(fù)制到自己的云服務(wù)器上運(yùn)行。

4.測(cè)試ipv6

添加ipv6的dns服務(wù)器,在最后添加nameserver 2001:4860:4860::8888,nameserver 2001:4860:4860::8844谷歌的ipv6 dns服務(wù)器
# 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
阿里云服務(wù)配置
代理配置好之后服務(wù)器中執(zhí)行ifconfig命令,找到he-ipv6虛擬網(wǎng)卡,找到scope為Global 的ipv6地址,在阿里云后臺(tái)配置AAAA記錄為上面提到的ipv6地址

阿里云文檔:https://help.aliyun.com/knowledge_detail/39813.html在線測(cè)試:https://zh.infobyip.com/ping-ipv6.google.com-ipv6.html
6.1AppStore發(fā)布之后的應(yīng)用要兼容IPv6。
然而我上個(gè)星期發(fā)布的版本并沒(méi)有因?yàn)闆](méi)兼容而被拒,這次提交卻遇到IPv6兼容問(wèn)題。。。
話不多說(shuō),上代碼:
+(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環(huán)境并解析域名獲得了IP地址。
測(cè)試
首先得配置IPv6網(wǎng)絡(luò)環(huán)境,至于如何配置,自行百度"如何搭建IPv6的測(cè)試環(huán)境"。
然而配置成功后,用手機(jī)連接的WiFi DNS也是正確的,運(yùn)行程序測(cè)試怎么不成功呢,找了好多資料,猜測(cè)是DNS解析出了問(wèn)題。
那就換另一種方法配置IPv6:拔掉網(wǎng)線,用mac連接WiFi(沒(méi)有WiFi可以用手機(jī)流量分享熱點(diǎn)),然后在共享中用前一種方法配置IPv6(不知道具體是共享到電腦那個(gè)端口,索性全點(diǎn)上),記得選中"創(chuàng)建NAT64 網(wǎng)絡(luò)"。這時(shí)直接通過(guò)模擬器測(cè)試succeed!
測(cè)試成功了。你以為就沒(méi)問(wèn)題了?這里提交依然可能被拒,手機(jī)和 Mac 之間是 IPv6 沒(méi)錯(cuò),但 Mac 和你的服務(wù)器之間還是 IPv4 連接。
如果這項(xiàng)測(cè)試通過(guò),可以說(shuō)明:你的客戶端應(yīng)用在 IPv6 網(wǎng)絡(luò)下,是(基本)沒(méi)有問(wèn)題的,但是無(wú)法驗(yàn)證你的服務(wù)器能夠?qū)?IPv6 網(wǎng)絡(luò)做出正確的響應(yīng)。然而,蘋(píng)果審核的時(shí)候,卻是要去 DNS 服務(wù)器詢問(wèn)你的服務(wù)器的 IPv6 地址,然后進(jìn)行訪問(wèn)。如果查詢不到 IPv6 地址,可能會(huì)進(jìn)而詢問(wèn) IPv4 地址,然后進(jìn)行轉(zhuǎn)換使用。蘋(píng)果明確表示服務(wù)器不需要支持 IPv6,但是有一點(diǎn)蘋(píng)果沒(méi)有指出來(lái),那就是,雖然你的服務(wù)器不用支持 IPv6,但是必須正確響應(yīng) IPv6 的 DNS 查詢。
如何驗(yàn)證呢??使用以下命令即可:
- $ dig +nocmd +nostats example.com AAAA
如果返回的 status 為 NOERROR, 那基本就沒(méi)什么問(wèn)題,但是一定要在多個(gè)網(wǎng)絡(luò)環(huán)境下測(cè)試都通過(guò)才行。如果返回的是其他的響應(yīng),尤其是 SERVFAIL 的情況,那就基本杯具了。由于你已經(jīng)驗(yàn)證了客戶端沒(méi)有問(wèn)題,現(xiàn)在要做的,就是催著你的運(yùn)維、后臺(tái)啥的,趕緊去改 DNS 配置,直到穩(wěn)定返回 NOERROR 為止。
其他參考:
http://blog.csdn.net/nil_lu/article/details/53809893 關(guān)于阿里云HTTPS協(xié)議的相關(guān)支持
一、獲取HTTPS安全證書(shū)
在操作之前,請(qǐng)將你的域名的隱私保護(hù)去掉,讓證書(shū)服務(wù)商能通過(guò)域名解析查看到域名管理者的郵箱,否則驗(yàn)證證書(shū)時(shí)會(huì)無(wú)法進(jìn)行。
登錄阿里云管理控制臺(tái),【云盾】菜單選擇【證書(shū)服務(wù)】

選擇購(gòu)買(mǎi)證書(shū)

在購(gòu)買(mǎi)頁(yè)面,選擇WoSign,沃通,免費(fèi)版,多個(gè)域名,域名個(gè)數(shù)5個(gè),1年。
目前沃通停了免費(fèi)的證書(shū)服務(wù),只有賽門(mén)鐵克支持,大家按著沃通的方式來(lái)做吧,賽門(mén)鐵克的流程我就不貼了。
一幫商人!其實(shí)對(duì)于一個(gè)小網(wǎng)站來(lái)說(shuō),阿里應(yīng)該跟騰訊一樣,來(lái)個(gè)免費(fèi)的證書(shū)服務(wù),而不是通過(guò)接入第三方把這個(gè)小錢(qián)賺了

確認(rèn)訂單,支付,


付款完成后,到我的訂單里,可以看到剛剛買(mǎi)的服務(wù),點(diǎn)擊【信息補(bǔ)全】按鈕,將你的網(wǎng)站地址輸入,一般輸入一個(gè)不帶www.的和一個(gè)帶www.的兩個(gè)域名。


如果你進(jìn)入的是詳情頁(yè)就到你郵箱中看看阿里云給你發(fā)的郵件(郵箱是阿里云注冊(cè)時(shí)用的郵箱)

如果直接進(jìn)入沃通網(wǎng)站進(jìn)行信息補(bǔ)全就是這個(gè)界面:選擇【驗(yàn)證域名所有權(quán)(待完成)】

需要發(fā)送郵件到郵箱獲取驗(yàn)證碼,我的主機(jī)在購(gòu)買(mǎi)時(shí),送了我一個(gè)企業(yè)郵箱,所以就直接用域名對(duì)應(yīng)的郵箱了,如果你沒(méi)有域名郵箱,建議將域名保護(hù)關(guān)閉,然后再驗(yàn)證。當(dāng)然,你還可以通過(guò)域名解析的方式處理。

如果能通過(guò)郵件獲取驗(yàn)證碼,基本上,當(dāng)時(shí)就可以下發(fā)證書(shū)。回到阿里云證書(shū)服務(wù),可以看到訂單狀態(tài)。在我的證書(shū)標(biāo)簽頁(yè),如果看到申請(qǐng)的證書(shū),就說(shuō)明可以使用了。

對(duì)于已簽發(fā)的證書(shū),我們就可以下載,下載后解壓得到兩個(gè)文件,一個(gè)key結(jié)尾,是私鑰,一個(gè)pem結(jié)尾,是公鑰。

二、配置HTTPS證書(shū)
到阿里云管理控制臺(tái)【CDN】的【CDN域名列表中】,添加一個(gè)新的域名,選擇圖片小文件加速,類型IP,然后將阿里云虛擬主機(jī)的IP輸入。端口一定選擇80,不要選擇443

添加完成后,我們進(jìn)行管理,開(kāi)啟證書(shū)狀態(tài),將剛才的pem結(jié)尾的公鑰用文本編輯器打開(kāi),拷貝內(nèi)容,粘貼到【證書(shū)內(nèi)容】中。將私鑰拷貝,粘貼到私鑰中。
注意:公鑰的內(nèi)容中-----END CERTIFICATE-----
和-----BEGIN CERTIFICATE-----
之間是有空行的,需要將空行去掉
... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...
改成
... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ...
另外需要將跳轉(zhuǎn)類型設(shè)置為HTTP->HTTPS

另外需要記住CNAME:
CNAME: www.aitongyi.com.w.cab.com
因?yàn)橄乱徊轿覀冃枰接蛎芾砜刂婆_(tái)去修改網(wǎng)站的域名綁定信息。
CDN的基本信息配置完成后,我們需要解析緩存配置,就是告訴CDN,緩存那些內(nèi)容。
如果是阿里的免費(fèi)虛擬主機(jī),除了將html、css、js、png、jpg、ico等文件緩存外,一般會(huì)將整個(gè)css或者js目錄緩存,因?yàn)橛械膉s文件未來(lái)便于處理,都是用.jsv1.0.0
來(lái)做結(jié)尾,避免js文件更新后無(wú)法獲取最新版本。
由于我是Hexo生成的靜態(tài)網(wǎng)站,所以可以將整個(gè)網(wǎng)站目錄進(jìn)行緩存。

三、域名綁定
在阿里云管理控制臺(tái)中【域名】的【域名列表】點(diǎn)擊域名的【管理】按鈕,進(jìn)入域名管理控制臺(tái)。將原來(lái)的記錄類型【A】,主機(jī)記錄為www
的解析修改一個(gè)為CNAME記錄類型,將記錄值修改為剛才的www.aitongyi.com.w.cab.com
這個(gè)地址,保存即可。

下一步我就就是在瀏覽器中輸入:www.aitongyi.com
,網(wǎng)站就會(huì)自動(dòng)跳轉(zhuǎn)到https://www.aitongyi.com/
大功告成!
如果你的網(wǎng)站沒(méi)有跳轉(zhuǎn)到https或者網(wǎng)站請(qǐng)求沒(méi)有反應(yīng),請(qǐng)等待10分鐘左右,一般是設(shè)置沒(méi)有及時(shí)生效導(dǎo)致的。

posted on 2017-04-14 12:31
思月行云 閱讀(5224)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
服務(wù)器\Ops