背景

舰C在2025年大更新引入https后,用普通的VPN软件绕过地区限制不会受影响,因为VPN是直接做流量转发,不需要处理数据。而岛风Go等代理软件就没法像以前一样毫无阻碍地在中间转发了,如果不做任何设置,浏览器会把舰C网站标为证书无效,并阻止大多数的连接。因此,我们需要自行颁发并信任一些证书,让浏览器认为走代理的舰C网站是安全的。

岛风Go基本原理

具体这种带缓存魔改防猫的代理如何运作的并没有公开的说明,但用网络安全的基本知识也能猜个大概。在HTTP协议裸奔的年代,本地网页与服务器之间的通信会被代理软件“劫持”,即数据包发到本地后会首先进入代理软件,代理读取处理并修改信息后再把数据包发给浏览器。等浏览器想往服务器发包时,包首先也会发给代理,代理考虑是正常发给服务器还是做点修改。例如本地缓存和魔改,大概就是浏览器在向服务器请求图片资源时,代理直接返回自己存储的贴图。防猫,大概也是在发包后如果没收到服务器返回的OK,就把包扣着重新再发直到收到正确的回复。

HTTPS和根证书

想要知道为什么舰C换HTTPS后代理软件就挂了,需要先了解一点现代网站安全的基本知识。

为了不让像登录密码这种敏感信息在互联网上裸奔,现代网站都使用了HTTPS协议,大致的工作原理是,服务器首先生成一套非对称加密(例如RSA)的公钥和私钥,浏览器访问服务器时,服务器把公钥明文发给浏览器,浏览器生成一个随机的对称加密(例如AES)的密钥,用服务器公钥加密后发给服务器,服务器用自己的私钥解密,之后的通信都使用这个对称加密的密钥来加密。

在这个过程中,中间人攻击仍然很简单,代理软件只需要假装自己是客户端,跟服务器交换密钥后就能正常解密加密跟服务器的通信。然后再假装自己是服务器,跟浏览器交换密钥,便能跟HTTP一样实现所有功能了。

为了堵住这个漏洞,HTTPS引入了CA证书系统。在互联网世界中有几个官方认证的CA机构,浏览器默认他们是可靠的,并且保存了他们的公钥。所有网站在生成自己的非对称私钥公钥时,都要找一个CA机构做认证。CA机构会将网站服务器的公钥先算hash,再用CA的私钥加密,作为这个网站的证书。当浏览器请求网页时,会同时得到明文的网站公钥,以及CA加密的证书。浏览器会使用系统里保存的CA公钥将证书解密,再与收到的网站公钥的hash做对比,如果不一样,则会认定为遭到了攻击,通常会拒绝后续的连接。这种情况下浏览器顶上域名栏左边会显示红色的警告。

因此,代理软件假装自己是舰C服务器的企图就被识破了,因为它提供的服务器公钥和证书无法被浏览器已知的CA公钥验证。代理软件也不可能真的找一个CA机构来认证,毕竟认证时候你还得提供网站域名,不可能让人家机构认证你为dmm的服务器吧。所以我们只能假装自己是个CA机构,给自己颁发个证书,认证dmm和舰C服务器的域名,并将这个伪CA机构的信息添加进系统中,让浏览器认为你也是可靠的。岛风Go实际上提供了他们自己签发的全套证书,如果你不担心什么安全问题完全可以直接使用,但作为一名有点追求的计算机使用者,还是希望能自己控制整个伪造流程。

自己签发CA证书

以下为整套签发CA证书的流程,在Ubuntu下测试,Windows应该也大差不差。

  1. 生成根CA私钥
openssl genrsa -out myRootCA.key 4096
  1. 生成自签名根证书
openssl req -x509 -new -nodes -key myRootCA.key -sha256 -days 3650 -out myRootCA.crt
  1. 生成网站私钥
openssl genrsa -out ShimakazeGo.key 2048
  1. 设置需要签名的网站

以下设置是从岛风Go的证书文件里抄出来的,未来还可能会修改。保存为ShimakazeGo.cnf

[ req ]
default_bits        = 2048
prompt              = no
default_md          = sha256
req_extensions      = v3_req
distinguished_name  = dn

[ dn ]
C = CN
ST = Shanghai
O = ShimakazeGoCustom
CN = ShimakazeGoCustom

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 =    *.cdn.dmmgames.com
DNS.2 =    *.cloudfront.net
DNS.3 =    *.touken-ranbu.jp
DNS.4 =    *.bilibiligame.net
DNS.5 =    *.yuyuyui.jp
DNS.6 =    *.shiropro-re.net
DNS.7 =    *.enza.fun
DNS.8 =    *.shinycolors.enza.fun
DNS.9 =    *.kamihimeproject.net
DNS.10 = gskh-api-r-zh.prod.skh.johren.games
DNS.11 = gskh-resource-r-zh.prod.skh.johren.games
DNS.12 = prd-priconne-redive.akamaized.net
DNS.13 = *.happyelements.co.jp
DNS.14 = stars-assets.hekk.org
DNS.15 = *.kanpani.jp
DNS.16 = *.aimia.dmmgames.com
DNS.17 = *.cdn.aimia.dmmgames.com
DNS.18 = *.bungo.dmmgames.com
DNS.19 = api-gameplayer.dmm.com
DNS.20 = cdn2-gameplayer.games.dmm.com
DNS.21 = fruful.jp
DNS.22 = i-cf.alice.colopl.jp
DNS.23 = game.mahjongsoul.com
DNS.24 = dmc.mahjongsoul.com
DNS.25 = game.maj-soul.com
DNS.26 = *.magicami.jp
DNS.27 = zu9j1t6ekm.user-space.cdn.idcfcloud.net
DNS.28 = *.idolwars.jp
DNS.29 = www.dmm.com
DNS.30 = www.dmm.co.jp
DNS.31 = p.dmm.com
DNS.32 = p.dmm.co.jp
DNS.33 = pics.dmm.com
DNS.34 = pics.dmm.co.jp
DNS.35 = games.dmm.com
DNS.36 = games.dmm.co.jp
DNS.37 = media.games.dmm.com
DNS.38 = media.games.dmm.co.jp
DNS.39 = files.gameplayer.games.dmm.com
DNS.40 = osapi.dmm.com
DNS.41 = osapi.dmm.co.jp
DNS.42 = cdn-connect.mobage.jp
DNS.43 = mist-train-girls.azureedge.net
DNS.44 = *.mist-train-girls.com
DNS.45 = mist-train-girls.azurefd.net
DNS.46 = *.e-heroines.net
DNS.47 = static-files-allb.pokelabo.jp
DNS.48 = web-assets.otogi-frontier.com
DNS.49 = otogi-rest.otogi-frontier.com
DNS.50 = az-otogi-web-assets.azureedge.net
DNS.51 = prd-storage-app-umamusume.akamaized.net
DNS.52 = prd-storage-game-umamusume.akamaized.net
DNS.53 = *.bokusen.net
DNS.54 = millennium-war.net
DNS.55 = all.millennium-war.net
DNS.56 = assets-cn.millennium-war.net
DNS.57 = ancl.jp
DNS.58 = cdn-paripari-prod-002.azureedge.net
DNS.59 = assets.game-monmusu-td.net
DNS.60 = prd-game-a-granbluefantasy.akamaized.net
DNS.61 = prd-game-a1-granbluefantasy.akamaized.net
DNS.62 = prd-game-a2-granbluefantasy.akamaized.net
DNS.63 = prd-game-a3-granbluefantasy.akamaized.net
DNS.64 = prd-game-a4-granbluefantasy.akamaized.net
DNS.65 = prd-game-a5-granbluefantasy.akamaized.net
DNS.66 = pc-play.games.dmm.com
DNS.67 = pc-play.games.dmm.co.jp
DNS.68 = tracking.games.dmm.com
DNS.69 = tracking.games.dmm.co.jp
DNS.70 = d3mya90gbacu0m.cloudfront.net
DNS.71 = dz87n5pasv7ep.cloudfront.net
DNS.72 = cdn-r18.gc.dmmgames.com
DNS.73 = cdn.gc.dmmgames.com
DNS.74 = game-a.granbluefantasy.jp
DNS.75 = game-a1.granbluefantasy.jp
DNS.76 = game-a2.granbluefantasy.jp
DNS.77 = game-a3.granbluefantasy.jp
DNS.78 = game-a4.granbluefantasy.jp
DNS.79 = game-a5.granbluefantasy.jp
DNS.80 = *.kancolle-server.com
  1. 生成csr文件
openssl req -new -key ShimakazeGo.key -out ShimakazeGo.csr -config ShimakazeGo.cnf
  1. 使用根CA签发网站证书,每年要更新
openssl x509 -req -in ShimakazeGo.csr -CA myRootCA.crt -CAkey myRootCA.key -CAcreateserial -out ShimakazeGo.crt -days 825 -sha256 -extfile ShimakazeGo.cnf -extensions v3_req
  1. 将证书转为pfx文件,这个是岛风Go认可的证书文件
openssl pkcs12 -export \
-out ShimakazeGo.pfx \
-inkey ShimakazeGo.key \
-in ShimakazeGo.crt \
-certfile myRootCA.crt
  1. 可以用如下命令查看pfx证书信息
openssl pkcs12 -info -in ShimakazeGo.pfx
  1. 重命名为customize_cert.pfx并放入ShimakazeGo目录
  2. 将我们自己的CA证书导入浏览器的信任证书,Chrome在设置里找到隐私和安全,选择安全,管理证书,选择导入,然后将之前生成的myRootCA.crt文件加进来。
  3. 最后重启岛风Go和浏览器,再打开舰C的页面,应该不再看到隐私警告了,同时点开域名左边的按钮,还能看到我们自己给dmm签发的证书。
Last modification:February 18, 2026
点赞喵,点个赞谢谢喵