183 lines
6.2 KiB
HTML
183 lines
6.2 KiB
HTML
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<meta http-equiv="Content-Style-Type" content="text/css" />
|
|||
|
<meta content="width=device-width, initial-scale=1" name="viewport">
|
|||
|
<meta name="generator" content="pandoc" />
|
|||
|
<title>Center ACME Auto SSL</title>
|
|||
|
<style type="text/css">code{white-space: pre;}</style>
|
|||
|
<link rel="stylesheet" href="normal.css" type="text/css" />
|
|||
|
<link rel="stylesheet" href="sakura.css" type="text/css" />
|
|||
|
<style>
|
|||
|
body {
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
.wrapper{
|
|||
|
position:relative;
|
|||
|
box-sizing:border-box;
|
|||
|
min-height:100%;
|
|||
|
padding-bottom:35px;
|
|||
|
}
|
|||
|
.footer{
|
|||
|
position:absolute;
|
|||
|
bottom:0;
|
|||
|
left:0;
|
|||
|
right:0;
|
|||
|
height:35px;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="wrapper">
|
|||
|
<h1 id="sakura-a-minimal-classless-css-framework-theme.">
|
|||
|
Center ACME Auto SSL(CAAS) by Laysense
|
|||
|
</h1>
|
|||
|
<p>[由 <a href="https://lab.laysense.cn/">来笙实验室</a> 出品]</p>
|
|||
|
<blockquote>
|
|||
|
<p>CAAS将打破你对ssl和acme的认识,现在只需要设置一次302重定向就可以直接申请到证书辣!</p>
|
|||
|
</blockquote>
|
|||
|
<button id="back" onclick="skipto('step1')">🔃重设</button>
|
|||
|
<div id="step1" style="display: none;">
|
|||
|
<center>
|
|||
|
<h3>Step1:输入你需要申请SSL的域名</h3>
|
|||
|
<input id="domain" type="url" /><br />
|
|||
|
<h3>以及你的邮箱</h3>
|
|||
|
<input id="email" type="email" />
|
|||
|
<button onclick="skipto('step2')">👉下一步</button>
|
|||
|
</div>
|
|||
|
<div id="step2" style="display: none;">
|
|||
|
<center>
|
|||
|
|
|||
|
<h3>Step2:选择一种证书类型</h3>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<h5>正式使用、公共网站:</h5>
|
|||
|
<button onclick="choose('R3')" style="padding:8px;">📃R3(3个月)</button><br>
|
|||
|
(即Let's Encrypt)
|
|||
|
</li><hr />
|
|||
|
<li>
|
|||
|
<h5>实验用途、私有网络:</h5>
|
|||
|
<button onclick="skipto('step99')" style="background: linear-gradient(135deg, #c850c0, #4158d0);padding:15px;">💎来笙豪华娱乐证书(10年)</button>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<h5>5050net、fwnet内部使用</h5>
|
|||
|
<button onclick="skipto('step999')">🌐FWNET证书</button>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</center>
|
|||
|
</div>
|
|||
|
<div id="step3" style="display: none;">
|
|||
|
<div width="50%" style="background-color: beige;">
|
|||
|
当前证书品牌:<span class="showtype"></span> 域名:<span class="showdomain"></span>
|
|||
|
</div>
|
|||
|
<center>
|
|||
|
<h3>最后一步!</h3>
|
|||
|
<p>请将<pre>http://<span class="showdomain"></span>/.well-known/acme-challenge/</pre>重定向到 <pre>http://httpacme.lab.laysense.cn/acme/<span class="showdomain"></span></pre></p>
|
|||
|
<button id="checkbutton" onclick="check()">😀我搞定了!</button><br />
|
|||
|
<pre id="checknotice" style="background-color: antiquewhite;display: none;"></pre>
|
|||
|
<hr><a>🧐不会操作? 查看文档!</a>
|
|||
|
</center>
|
|||
|
</div>
|
|||
|
<div id="step4" style="display: none;">
|
|||
|
<div width="50%" style="background-color: beige;">
|
|||
|
当前证书品牌:<span class="showtype"></span> 域名:<span class="showdomain"></span>
|
|||
|
</div>
|
|||
|
<center>
|
|||
|
<h3>😍激动人心的时刻</h3>
|
|||
|
<button style="background: linear-gradient(135deg, #ff9a9e, #fad0c4);padding:12px;" onclick="skipto('step999')">获取证书</button>
|
|||
|
</center>
|
|||
|
</div>
|
|||
|
<div id="step99" style="display: none;">
|
|||
|
<center>
|
|||
|
<h3>😳诶呀,所选证书品牌暂时不可用</h3>
|
|||
|
<button id="back" onclick="skipto('step2')">🔃重选证书</button>
|
|||
|
</center>
|
|||
|
</div>
|
|||
|
<div id="step999" style="display: none;">
|
|||
|
<center>
|
|||
|
<h3>😳诶呀,该证书品牌拒绝新的申请</h3>
|
|||
|
<button id="back" onclick="skipto('step2')">🔃重选证书</button>
|
|||
|
</center>
|
|||
|
</div>
|
|||
|
<hr />
|
|||
|
<div class="footer">
|
|||
|
<a>📥下载来笙根证书</a> <a href="https://5050net.cn/fwnet-ecdsa-root-ca-1.crt" target="_blank">📥下载FWNET根证书</a>
|
|||
|
<a style="float: right;">📄文档</a>
|
|||
|
<a style="float: right;">⏰自动续期</a>
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<script src="jquery-3.7.1.js"></script>
|
|||
|
<script>
|
|||
|
|
|||
|
changestep();
|
|||
|
window.onhashchange=function(){
|
|||
|
changestep();
|
|||
|
}
|
|||
|
function skipto(whichstep){
|
|||
|
location.hash=whichstep;
|
|||
|
changestep();
|
|||
|
}
|
|||
|
function choose(type){
|
|||
|
window.certtype=type;
|
|||
|
location.hash='step3';
|
|||
|
changestep();
|
|||
|
}
|
|||
|
function changestep(){
|
|||
|
var domain=$('#domain').val();
|
|||
|
var step=location.hash;
|
|||
|
if(typeof(step) == "undefined" || !step || !domain || typeof(domain) == "undefined"){
|
|||
|
step='#step1';
|
|||
|
}else if(step!='#step2'&& !window.certtype || typeof(window.certtype) == "undefined"){
|
|||
|
step='#step2';
|
|||
|
}else{
|
|||
|
$('.showdomain').html(domain);
|
|||
|
$('.showtype').html(window.certtype);
|
|||
|
}
|
|||
|
if(step=='#step4'&&(window.check!='pass'||!window.check)){
|
|||
|
step='#step3';
|
|||
|
}
|
|||
|
//console.log(step);
|
|||
|
$(window.laststep).hide();
|
|||
|
$(step).show();
|
|||
|
window.laststep=step;
|
|||
|
}
|
|||
|
function check(){
|
|||
|
var domain=$('#domain').val();
|
|||
|
var email=$('#email').val();
|
|||
|
$.ajax({
|
|||
|
type: "POST",
|
|||
|
url: '/apply/check',
|
|||
|
data: {'domain':domain,'email':email,'cert':window.certtype},
|
|||
|
async: true,
|
|||
|
dataType: 'json',
|
|||
|
cache: false,
|
|||
|
beforeSend: function () {
|
|||
|
$('#checkbutton').attr("disabled","disabled");
|
|||
|
$('#checkbutton').hide();
|
|||
|
|
|||
|
$('#checknotice').show();
|
|||
|
$('#checknotice').html('📑检查中,请稍等');
|
|||
|
|
|||
|
},
|
|||
|
success: function (data) {
|
|||
|
if (data.code == 200) {
|
|||
|
$('#checknotice').html('已通过校验');
|
|||
|
changestep('step4');
|
|||
|
window.check='pass';
|
|||
|
} else {
|
|||
|
$('#checkbutton').show();
|
|||
|
$('#checknotice').html('校验未通过:'+data.msg);
|
|||
|
$('#checkbutton').removeAttr("disabled");
|
|||
|
}
|
|||
|
},
|
|||
|
clearForm: true,
|
|||
|
resetForm: false
|
|||
|
});
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
</body>
|
|||
|
</html>
|