Files
EdgeAdmin/web/views/@default/servers/certs/acme/create.html

170 lines
7.4 KiB
HTML
Raw Normal View History

{$layout}
{$template "/left_menu_top"}
<div class="right-box without-tabbar">
{$template "menu"}
<div class="margin"></div>
<form class="ui form">
<div class="ui steps fluid small">
<div class="ui step" :class="{active:step == 'prepare'}">
选择申请方式
</div>
<div class="ui step" :class="{active:step == 'user'}">
2023-04-23 10:44:37 +08:00
选择ACME用户
</div>
<div class="ui step" :class="{active:step == 'dns'}">
填写域名信息
</div>
<div class="ui step" :class="{active:step == 'finish'}">
完成
</div>
</div>
<!-- 准备工作 -->
<div v-show="step == 'prepare'">
<table class="ui table definition selectable">
<tr>
<td class="title">认证方式 *</td>
<td>
<div style="margin-bottom: 1em">
<radio name="authType" :v-value="'http'" v-model="authType">使用HTTP认证</radio> &nbsp;
<radio name="authType" :v-value="'dns'" v-model="authType">使用DNS认证</radio>
</div>
<div v-if="authType == 'http'">
<p class="comment">使用HTTP的方式请求网址<code-label>/.well-known/acme-challenge/令牌</code-label>校验,该方式要求需要实现将域名解析到集群上,之后系统会自动生成网址信息。</p>
</div>
<div v-if="authType == 'dns'">
<p class="comment">我们在申请免费证书的过程中需要自动增加或修改相关域名的TXT记录请先确保你已经在"域名解析" -- <a href="/dns/providers" target="_blank">"DNS服务商"</a> 中已经添加了对应的DNS服务商账号。</p>
</div>
</td>
</tr>
<tr>
<td>选择平台用户</td>
<td>
<user-selector @change="changePlatformUser"></user-selector>
<p class="comment">可选项,选择证书所属用户,如果没有选择,则视为管理员所有。</p>
</td>
</tr>
<tr>
<td colspan="2">
<a href="" @click.prevent="showPrepareMoreOptionsVisible">更多选项<i class="icon angle" :class="{up: prepareMoreOptionsVisible, down: !prepareMoreOptionsVisible}"></i></a>
</td>
</tr>
<tbody v-show="prepareMoreOptionsVisible">
<tr>
<td>回调URL</td>
<td>
<input type="text" name="authURL" v-model="authURL" maxlength="200"/>
2023-07-01 10:51:52 +08:00
<p class="comment">将认证数据以JSON的方式POST到此URL上可以依此生成认证文件或者设置DNS域名解析仅适用于未绑定当前CDN系统的域名。</p>
</td>
</tr>
</tbody>
</table>
<div class="button-group">
<button type="button" class="ui button primary" @click.prevent="doPrepare">下一步</button>
</div>
</div>
<!-- 选择用户 -->
<div v-show="step == 'user'">
<table class="ui table definition selectable">
2021-10-03 13:09:49 +08:00
<tr>
<td class="title">选择证书服务商 *</td>
2021-10-03 13:09:49 +08:00
<td>
<select class="ui dropdown auto-width" v-model="providerCode" @change="changeProvider">
<option value="">[选择服务商]</option>
<option v-for="provider in providers" :value="provider.code">{{provider.name}}</option>
</select>
</td>
</tr>
<tr v-if="providerCode.length > 0">
<td class="title">选择ACME用户 *</td>
<td>
<div v-if="users.length > 0">
<div class="ui fields inline">
<div class="ui field">
<select class="ui dropdown" v-model="userId">
<option value="0">[请选择]</option>
2021-10-03 13:09:49 +08:00
<option v-for="user in users" :value="user.id" v-if="user.providerCode == providerCode">{{user.email}}{{user.description}}</option>
</select>
</div>
<div class="ui field">
<a href="" @click.prevent="createUser">[新创建]</a>
</div>
</div>
</div>
<div v-else><a href="" @click.prevent="createUser"><span v-if="platformUserId > 0">当前平台用户下</span>暂时还没有ACME用户点此创建</a></div>
<p class="comment">选择一个作为申请证书的用户。</p>
</td>
</tr>
</table>
<div class="button-group">
<button type="button" class="ui button" @click.prevent="goPrepare">上一步</button>
<button type="button" class="ui button primary" @click.prevent="doUser">下一步</button>
</div>
</div>
<!-- 设置域名解析 -->
<div v-show="step == 'dns'">
<table class="ui table definition selectable">
<tr v-show="authType == 'dns'">
<td class="title">选择DNS服务商 *</td>
<td>
2021-10-03 13:09:49 +08:00
<div v-if="dnsProviders.length > 0">
<select class="ui dropdown auto-width" v-model="dnsProviderId">
<option value="0">[请选择]</option>
2021-10-03 13:09:49 +08:00
<option v-for="provider in dnsProviders" :value="provider.id">{{provider.name}}{{provider.typeName}}</option>
</select>
</div>
<div v-else>
<span>暂时没有DNS服务商<a href="/dns/providers">[去添加]</a></span>
</div>
<p class="comment">用于自动创建域名解析记录。</p>
</td>
</tr>
<tr v-show="authType == 'dns'">
<td>顶级域名 *</td>
<td>
<input type="text" maxlength="100" v-model="dnsDomain"/>
<p class="comment">用于在DNS服务商账号中操作解析记录的域名比如 example.com不要输入二级或别的多级域名。</p>
</td>
</tr>
<tr>
2022-10-27 19:44:50 +08:00
<td class="title">证书域名列表 *</td>
<td>
2022-10-28 17:59:46 +08:00
<domains-box :v-support-wildcard="authType == 'dns'" @change="changeDomains"></domains-box>
<p class="comment">需要申请的证书中包含的域名列表<span v-if="authType == 'dns'">,所有域名必须是同一个顶级域名</span><span v-if="authType == 'http'">使用HTTP认证方式时域名中不能含有通配符</span></p>
</td>
</tr>
<tr>
<td>自动续期</td>
<td>
<checkbox v-model="autoRenew"></checkbox>
2022-10-28 17:59:46 +08:00
<p class="comment">选中后,表示在免费证书临近到期之前尝试自动续期。</p>
</td>
</tr>
</table>
<div class="button-group">
<button type="button" class="ui button" @click.prevent="goUser">上一步</button>
<button type="button" class="ui button primary" @click.prevent="doDNS" v-if="!isRequesting">下一步</button>
<button type="button" class="ui button primary disabled" v-if="isRequesting">提交中,要花费的时间较长,请耐心等待...</button>
</div>
</div>
<!-- 完成 -->
<div v-show="step == 'finish'">
<div class="success-box">
<p><span class="green">恭喜,证书申请成功!</span>你可以在证书列表里看到刚申请的证书,也可以 <a href="" @click.prevent="viewCert">点击这里</a> 查看证书详情。</p>
</div>
<div class="button-group">
<button type="button" class="ui button primary" @click.prevent="doFinish">返回</button>
</div>
</div>
</form>
</div>