Skip to content

Commit

Permalink
Release Update 1.0.221001
Browse files Browse the repository at this point in the history
  • Loading branch information
xiangyuecn committed Oct 1, 2022
1 parent 1bf9e5d commit 47d8e9b
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 25 deletions.
43 changes: 23 additions & 20 deletions ACME-HTML-Web-Browser-Client.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAe1BMVEUDuu3///8AtuwAue1c0/QAt+1a0vSZ4/gOve4Ju+4AtOzf9v31/P4iw/DS8/yf5fnE7/tNzvMsxvHw+/7t+v7k+P2U4veO4PeA3Pbp+f7h9/3Y9f3I8Pxt1/Vi1PRQz/NDzPIzyPEWv+76/v/3/f+87fqn5/mI3/Z82vb+fQDoAAAA10lEQVQ4y63T2c7CIBCGYWamUwFZurfuy7/e/xVaeySlYmJ8T78nISQgPh0xU2pGZa1EfrazHJz5an2FT3brYKoul4UqAHx5Hhqoq6VTMAc4aER9acDjEviFPd2voP9gKykGVECHkzyBsRzvI+g1jWG5BFDIPXRKjqkcTKUwPISPbvsN9XpqA9DuehXsF4g64APALAY+AHkMVm+CzToNVld1NAmwE0zaJ0DBQughAcxZ66tLAGj6f/f2NdMgewXKGHSPgOTPfG/Dh0vqlAXlluefahaLT3UDvrAKrj7jLKkAAAAASUVORK5CYII=" />

<title>ACME Web Browser Client | ACME客户端H5网页单文件版,在线免费申请签发SSL/TLS通配符泛域名HTTPS证书,支持Let's Encrypt、ZeroSSL,无需账号免登录注册 | Get Wildcard Certificates Online For Free - Single HTML File</title>
<title>ACME Web Browser Client | ACME客户端H5网页单文件版,在线免费申请签发SSL/TLS通配符泛域名HTTPS证书,支持Let's Encrypt、ZeroSSL,无需账号免登录注册 | Windows macOS Get Wildcard Certificates Online For Free - Single HTML File</title>
</head>

<body>
<script>
var Version="1.0.220920";
var Version="1.0.221001";
console.log("LICENSE: GPL-3.0, https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client/blob/main/LICENSE");
/***********************************
中英对照翻译主要来自:Chrome自带翻译+百度翻译,由中文翻译成English(作者英文很菜)。
Expand All @@ -22,7 +22,7 @@
</script>


<div class="main-load Center" style="padding-top:40vh;font-size:28px">Loading...</div>
<div class="main-load" style="padding-top:40vh;text-align:center;font-size:28px">Loading...</div>
<div class="main" style="display:none">
<div class="mainBox acmeReadDirGotoCORSState" style="display:none"></div>

Expand All @@ -46,13 +46,13 @@
<li class="langEN"><i>Functional use</i>This web client is used to: apply for free SSL/TLS domain name certificates (RSA, ECC/ECDSA) for HTTPS from <a href="https://letsencrypt.org/" target="_blank">Let's Encrypt</a> , <a href="https://zerossl.com/" target="_blank">ZeroSSL</a> and other certificate authorities that support the ACME protocol, and support multiple domain names and wildcard pan-domain names; Simply operate on a modern browser to obtain a domain name certificate in plain text in PEM format, does not depend on the operating system environment, does not need to download and install software, and is purely manual, <span class="Bold">only focus on the only thing that is to apply for and obtain a certificate.</span></li>

<li class="langCN"><i>简单易用</i>点点鼠标 Ctrl+C Ctrl+V 就能完成证书的申请,全程需要的操作少,每一步都有保姆级操作提示,UI友好大气美观;<span class="Bold">本客户端不需要注册账号、更不需要登录。</span></li>
<li class="langEN"><i>Simple to use</i>Click the mouse and Ctrl+C Ctrl+V to complete the certificate application. The whole process requires less operations, and there are nanny level operation prompts at each step; UI friendly, atmospheric and beautiful; <span class="Bold">This client does not need to register an account, and does not need to log in.</span></li>
<li class="langEN"><i>Easy to use</i>Click the mouse and Ctrl+C Ctrl+V to complete the certificate application. The whole process requires less operations, and there are nanny level operation prompts at each step; UI friendly, atmospheric and beautiful; <span class="Bold">This client does not need to register an account, and does not need to log in.</span></li>

<li class="langCN"><i>开源项目</i>本网页客户端源码已开源,访问网址由托管仓库提供,源码透明可追溯。</li>
<li class="langEN"><i>Open source project</i>The source code of the client side of this webpage has been open sourced, and the access URL is provided by the hosting warehouse, and the source code is transparent and traceable.</li>

<li class="langCN"><i>单一文件</i>本网页客户端仅一个静态 HTML 文件,不依赖其他任何文件;因此可以直接保存到你本地(右键-另存为),即可通过浏览器打开。</li>
<li class="langEN"><i>A single file</i>This web client is only a static HTML file and does not depend on any other files; therefore, it can be directly saved to your local (right-click - save as), and you can open it through a browser.</li>
<li class="langEN"><i>A single file</i>This web client is only a single static HTML web page file and does not depend on any other files; therefore, it can be directly saved to your local (right-click - save as), and you can open it through a browser.</li>

<li class="langCN"><i>数据安全</i>除了你指定证书颁发机构的 ACME 接口地址外,本网页客户端不会向其他任何地址发送数据,通过浏览器控制台很容易做到网络数据审查。</li>
<li class="langEN"><i>Data security</i>Except for the ACME interface address of the certificate authority you specify, this web client will not send data to any other address, and it is easy to check the network data through the browser console.</li>
Expand Down Expand Up @@ -620,13 +620,6 @@


</div>
<script>
var downloadFileNameShow=function(name){
$(".downloadFileName").html(name);
$(".downloadKeyFileName").html(name+".key");
$(".downloadCertFileName").html(name+".pem");
};
</script>
</div>


Expand Down Expand Up @@ -947,7 +940,6 @@
$(".eccCurveNames").html(X509.SupportECCType2Names().join(Lang("、",", ")));
$(".donateBtnIco").html(unescape("%uD83D%uDE18"));
$(".versionBox").html(Lang("版本: "+Version,"Ver: "+Version));
downloadFileNameShow("your_domain");

if(/mobile/i.test(navigator.userAgent)){
$(".main").prepend($(".langBtnBox").css("position",null));
Expand All @@ -968,6 +960,7 @@

initTest_Restore();
acmeReadDirGotoCORSInit();
downloadFileNameShow();
initStep1();
initStep2();
initStep4();
Expand Down Expand Up @@ -1225,7 +1218,7 @@
};

var msg0=CLog(tag,0, ShowState(sEl,PleaseWaitTips()+Lang("正在创建","Generating ")+keyTag, 2));
X509.KeyGenerate(type,function(pem){
X509.KeyGenerate(type,type2,function(pem){
if(UserClickSyncKill(id,tag,msg0))return;
$(".in_privateKey").val(pem);
CLog(tag,0, ShowState(sEl,keyTag+Lang(",创建成功。",", generated successfully."), 2), '\n'+pem);
Expand All @@ -1252,7 +1245,7 @@
};

var msg0=CLog(tag,0, ShowState(sEl,PleaseWaitTips()+Lang("正在创建","Generating ")+keyTag, 2));
X509.KeyGenerate(type,function(pem){
X509.KeyGenerate(type,type2,function(pem){
if(UserClickSyncKill(id,tag,msg0))return;
$(".in_accountKey").val(pem);
CLog(tag,0, ShowState(sEl,keyTag+Lang(",创建成功。",", generated successfully."), 2), '\n'+pem);
Expand Down Expand Up @@ -1288,6 +1281,8 @@
domains.splice(i,1); i--; continue;
}else if(mp[domain])
return ShowState(sEl,Lang("域名"+domain+"重复!","Duplicate domain name "+domain+"!"),1);
if(/[:\/;]/.test(domain))//简单校验域名格式
return ShowState(sEl,Lang("域名"+domain+"格式错误!","Format error of domain name "+domain+"!"),1);
mp[domain]=1;
}
localStorage[InputDomainsStoreKey]=domainsStore?domains.join(", "):"";
Expand Down Expand Up @@ -1679,6 +1674,7 @@
CLog("DropConfigFile",0,"Reset Config",DropConfigFile);
Toast(Lang("识别到拖入的记录LOG文件,已填充上次申请证书时使用的配置。","The LOG file of the dragged record is identified, and the configuration used in the last certificate application has been filled."),2);
resetStep1();//重新初始化第1步
downloadFileNameShow();
}
reader.readAsText(file);
});
Expand All @@ -1693,14 +1689,21 @@
if(type=="Cert") fileName+=".pem";
if(type=="Key") fileName+=".key";
if(type=="Log") fileName+=".log";
if(DefaultDownloadFileNames[type]) fileName=DefaultDownloadFileNames[type];
fileName=DefaultDownloadFileNames[type]||fileName;

var url=URL.createObjectURL(new Blob([val], {"type":"text/plain"}));
var downA=document.createElement("A");
downA.href=url;
downA.download=fileName;
downA.click();
};
window.downloadFileNameShow=function(name){//显示下载文件名称,优先使用手动设置的默认名称
name=name||"your_domain";
var name2=(DefaultDownloadFileNames.Cert||"").replace(/\.[^\.]+$/g,"");
$(".downloadFileName").html(name2||name);
$(".downloadKeyFileName").html(DefaultDownloadFileNames.Key||name+".key");
$(".downloadCertFileName").html(DefaultDownloadFileNames.Cert||name+".pem");
};



Expand Down Expand Up @@ -2248,14 +2251,14 @@
}
,SupportECCType2Names:function(){ var str=[]; for(var k in X509.SupportECCType2)str.push(X509.SupportECCType2[k]); return str; }

//创建RSA/ECC密钥对
,KeyGenerate:function(type,True,False){
//创建RSA/ECC密钥对 type2取值:type=RSA时为密钥位数数值,type=ECC时为支持的曲线(X509.SupportECCType2)
,KeyGenerate:function(type,type2,True,False){
var algorithm=0;
if(type=="RSA"){
algorithm={ publicExponent: new Uint8Array([1, 0, 1]) //E: AQAB
,name:"RSASSA-PKCS1-v1_5", modulusLength:+X509.DefaultType2_RSA, hash:"SHA-256" };
,name:"RSASSA-PKCS1-v1_5", modulusLength:+type2, hash:"SHA-256" };
}else if(type=="ECC"){
algorithm={ name:"ECDSA", namedCurve:X509.DefaultType2_ECC };
algorithm={ name:"ECDSA", namedCurve:type2 };
}else{
False("Not support "+type);
return;
Expand Down
43 changes: 38 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
[GitHub](https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client) | [Gitee](https://gitee.com/xiangyuecn/ACME-HTML-Web-Browser-Client) | License: [GPL-3.0](https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client/blob/main/LICENSE)
[GitHub](https://github.com/xiangyuecn/ACME-HTML-Web-Browser-Client) | [Gitee](https://gitee.com/xiangyuecn/ACME-HTML-Web-Browser-Client) | License: [GPL-3.0](LICENSE)

# HTML5网页版ACME客户端 | ACME Web Browser Client

**本网页客户端(仅一个静态HTML网页文件)用于**:向 [Let's Encrypt](https://letsencrypt.org/)[ZeroSSL](https://zerossl.com/) 等支持 ACME 协议的证书颁发机构,免费申请获得用于 HTTPS 的 SSL/TLS 域名证书(`RSA``ECC/ECDSA`),支持多域名和通配符泛域名;只需在现代浏览器上操作即可获得 PEM 格式纯文本的域名证书,不依赖操作系统环境,无需下载和安装软件,无需注册登录,纯手动操作,**只专注于申请获得证书这一件事**
**本网页客户端(仅一个静态HTML网页文件)用于**:向 [Let's Encrypt](https://letsencrypt.org/)[ZeroSSL](https://zerossl.com/) 等支持 ACME 协议的证书颁发机构,免费申请获得用于 HTTPS 的 SSL/TLS 域名证书(`RSA``ECC/ECDSA`),支持多域名和通配符泛域名;只需在现代浏览器上操作即可获得 PEM 格式纯文本的域名证书,不依赖操作系统环境(Windows、macOS都能用),无需下载和安装软件,无需注册登录,纯手动操作,**只专注于申请获得证书这一件事,简单易用,非常适用于希望手动快捷申请获得证书的使用场景**

**在线使用网址(Gitee):** [https://xiangyuecn.gitee.io/acme-html-web-browser-client/ACME-HTML-Web-Browser-Client.html](https://xiangyuecn.gitee.io/acme-html-web-browser-client/ACME-HTML-Web-Browser-Client.html)

**交流与支持:欢迎加QQ群 `421882406`,纯小写口令 `xiangyuecn`。如需功能定制,网站、App、小程序、前端和后端等开发需求,请加此QQ群,联系群主(即作者),谢谢~**

[](?)

**This web client (only one static HTML webpage file) is used to**: apply for free SSL/TLS domain name certificates (`RSA`, `ECC/ECDSA`) for HTTPS from Let's Encrypt , ZeroSSL and other certificate authorities that support the ACME protocol, and support multiple domain names and wildcard pan-domain names; Simply operate on a modern browser to obtain a domain name certificate in plain text in PEM format, does not depend on the operating system environment, does not need to download and install software, does not need to register and log in, and is purely manual, **only focus on the only thing that is to apply for and obtain a certificate**.
**This web client (only a single static HTML web page file) is used to**: apply for free SSL/TLS domain name certificates (`RSA`, `ECC/ECDSA`) for HTTPS from Let's Encrypt , ZeroSSL and other certificate authorities that support the ACME protocol, and support multiple domain names and wildcard pan-domain names; Simply operate on a modern browser to obtain a domain name certificate in plain text in PEM format, does not depend on the operating system environment (both Windows and macOS can be used), does not need to download and install software, does not need to register and log in, and is purely manual, **only focus on the only thing that is to apply for and obtain a certificate, which is simple and easy to use, It is very suitable for scenarios where you want to apply for certificates manually and quickly**.

**Online website (GitHub):** [https://xiangyuecn.github.io/ACME-HTML-Web-Browser-Client/ACME-HTML-Web-Browser-Client.html](https://xiangyuecn.github.io/ACME-HTML-Web-Browser-Client/ACME-HTML-Web-Browser-Client.html)

Expand Down Expand Up @@ -39,8 +39,8 @@

- `Super Compatibility`: No operating system restrictions, no need to consider the operating environment, just use your common browser to open the web page to apply for a certificate.
- `Rich functions`: Support to apply for `RSA` or `ECC(ECDSA)` certificate, support multiple domain names and wildcards, and support multiple certificate authorities.
- `Simple to use`: Click the mouse and Ctrl+C Ctrl+V to complete the certificate application. The whole process requires less operations, and there are nanny level operation prompts at each step; UI friendly, atmospheric and beautiful; **This client does not need to register an account, and does not need to log in**.
- `A single file`: This web client is only a static HTML file and does not depend on any other files; therefore, it can be directly saved to your local, and you can open it through a browser.
- `Easy to use`: Click the mouse and Ctrl+C Ctrl+V to complete the certificate application. The whole process requires less operations, and there are nanny level operation prompts at each step; UI friendly, atmospheric and beautiful; **This client does not need to register an account, and does not need to log in**.
- `A single file`: This web client is only a single static HTML web page file and does not depend on any other files; therefore, it can be directly saved to your local, and you can open it through a browser.
- `Data security`: Except for the ACME interface address of the certificate authority you specify, this web client will not send data to any other address, and it is easy to check the network data through the browser console.
- `System security`: Pure web application, will not and cannot make any modification to your computer system.

Expand Down Expand Up @@ -125,8 +125,41 @@ Then it is to connect with ACME to realize certificate issuance and realize inte
## 为什么会这么丑 | Why is it so ugly
README和HTML的中英对照翻译主要来自:Chrome自带翻译+百度翻译,由中文翻译成English(作者英文很菜)。另外为什么没有拆分成每个语言一个文件,非要混乱的搞在一起:作者头已秃,文件多了怕心智负担太重 :) 。

如果你不需要自动化续期,只想手动申请获得证书,使用本网页版的客户端是一个很不错的选择。

可能正是因为手动操作、且不支持自动续期的原因,`Let's Encrypt`官网的ACME客户端列表中特别的不提供浏览器版的客户端;导致对于仅想获得证书,并不需要自动化功能的用户,不得不小心翼翼的使用那些不容易使用的客户端。

之前我一直通过 `diafygi/gethttpsforfree` 网页来申请证书,但操作太复杂了,从官网中又找不到更好的网页客户端,所以我就自己写代码做了一个,欢迎使用。

[](?)

The Chinese-English translation of README and HTML mainly comes from: Chrome comes with translation + Baidu translation, which is translated from Chinese to English (the author's English level is very low). In addition, why is it not split into one file for each language, and it has to be cluttered together: the author's head is bald, and there are too many files for fear that the mental burden will be too heavy :) .

If you don't need automatic renewal and just want to apply for a certificate manually, using this web page client is a good choice.

It may be because of manual operation and the fact that automatic renewal is not supported. The ACME client list on the `Let's Encrypt` official website does not provide a browser version of the client. As a result, users who only want to obtain certificates and do not need automation functions, they can only choose to use those clients that are not easy to use.

I have been applying for a certificate through the `diafygi/gethttpsforfree` webpage before, but the operation was too complicated, and I couldn't find a better web client from the official website, so I wrote my own code and made one, welcome to use.








[](?)

[](?)

[](?)

## 捐赠 | Donate
如果这个项目有帮助到您,欢迎 Star 一下方便以后找得到。

If this project is helpful to you, welcome Star, it will be convenient to find it in the future.

您也可以使用支付宝或微信打赏作者:

![](https://xiangyuecn.gitee.io/recorder/assets/donate-alipay.png) ![](https://xiangyuecn.gitee.io/recorder/assets/donate-weixin.png)

0 comments on commit 47d8e9b

Please sign in to comment.