环境需求:

  • Windows7 或 Windows10
  • OpenSSL
  • iPhone 配置实用工具
  • 任意一款代码编辑器

一、安装OpenSSL

OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。
例如 http://slproweb.com/products/Win32OpenSSL.html
以该工具为例,安装步骤和使用方法如下:

1、选择32位或者64位合适的版本下载,例如Win64OpenSSL_Light-1_0_2h.exe:

2、设置环境变量,例如工具安装在C:\OpenSSL-Win64,则将C:\OpenSSL-Win64\bin;复制到Path中

3、打开命令行程序cmd(以管理员身份运行),运行命令openssl如果没报错就可以了

二、免签文件的封装

安装iPhone 配置实用工具

一、普通封装:

配置描述文件->新建配置描述文件;通用->名称:app名字;标识符:app名字;机构描述同意信息:随便写。下面的默认就可以 你也可以自定义。

Web Clip(主要)- 标签:app名字; URL:app的网址; 图标:app的logo;预设图标和全屏幕需要勾选! 注意:APP的logo图一定要正方形 要不然安装会有黑边!

最后,点击左上角的导出,选{无}导出到你想要的位置就可以了。

二、去网址:需要上传文件

  • 去网址的实质就是将网站放在一个ifame的框架中,使safari忽略掉网址
  • 需要将moban.html中的网址更换成你要封装的网址 修改后Control+S保存然后将这个文件放在网站的运行目录下(一般是网站根目录或者public目录下)
  • 然后像普通封装一样封装 网站域名/moban.html 例如:http://网址/moban.html就可以达到去网址的目的。

描述文件无头部网址HTML示例

<html lang="zh-CN" style="--status-bar-height:0px;--window-top:0px; --window-bottom:0px;">
<head><title></title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes" />
<style>html,body{margin:0;padding:0;}</style>
</head>
<body>
    <iframe id="headerIframe" style="margin:0;padding:0;width:100%;height:100%;" src="网站URL" frameborder="0"></iframe>
</body>    
</html>

三、绿标,描述文件签名

宝塔里申请SSL任何域名都可以
第一个框框复制所有代码保存为mbaike.key
第二个框框复制所有代码保存为ca-bundle.pem

所有命令都可以直接新建txt文件,然后复制命令进去保存,将后缀名改为bat即可直接运行!

进入到两个文件位置

openssl x509 -in ca-bundle.pem -out mbaike.crt    (生成mbaike.crt)

把key文件的密码写入到key文件中

openssl rsa -in mbaike.key -out mbaikenopass.key

签名验证(可重复验证所有未签名的文件)

openssl smime -sign -in unsigned.mobileconfig -out signed.mobileconfig -signer mbaike.crt -inkey mbaikenopass.key -certfile ca-bundle.pem -outform der -nodetach

未报错则说明成功,此时会生成一个签名后的 文件signed.mobileconfig

signed.mobileconfig即为已签名免签文件

直接整个文件夹保存 不用多次输入命令,不更换证书的话只输入最后一条即可生成,但是要确保文件名正确

防止唤醒Safari(如果免签网站点击跳转Safari浏览器)

请将代码复制到每个网页的</head >标签前
请务必确保所有网页均写有此代码,否则可能出现APP内点击链接唤起手机自带Safari浏览器的情况,降低用户体验。
Q:代码有什么作用?
A :此段代码主要是阻止网页唤起Iphone手机Safari浏览器
Q:添加代码后需要重新生成吗?
A :不需要生成,App将同步完成更新。
Q :代码会对网站安全产生影响吗?
A :不影响,代码只是单纯的阻止唤起浏览器。

<script>
if(("standalone" in window.navigator) && window.navigator.standalone){
    var noddy, remotes = false;
    document.addEventListener('click', function(event) {
        noddy = event.target;
        while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") {
            noddy = noddy.parentNode;
        }
        if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes)){
            event.preventDefault();
            document.location.href = noddy.href;
        }
    },false);
}
</script>

本教程以及软件仅供学习交流,如作他用所承受的法律责任一概与作者无关(下载使用即代表你同意上述观点)