125 lines
4.8 KiB
HTML
125 lines
4.8 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}{{ ca.name }} - CA详情{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="d-flex justify-content-between align-items-center mb-3">
|
|
<h2>CA机构详情: {{ ca.name }}</h2>
|
|
<div>
|
|
<a href="{{ url_for('export_ca_view', ca_id=ca.id) }}" class="btn btn-primary me-2">导出CA</a>
|
|
<a href="{{ url_for('generate_crl_view', ca_id=ca.id) }}" class="btn btn-warning me-2">生成CRL</a>
|
|
{% if crl %}
|
|
<a href="{{ url_for('download_crl', ca_id=ca.id) }}" class="btn btn-success">下载CRL</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="card-title">基本信息</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<dl class="row">
|
|
<dt class="col-sm-4">通用名</dt>
|
|
<dd class="col-sm-8">{{ ca.common_name }}</dd>
|
|
|
|
<dt class="col-sm-4">组织</dt>
|
|
<dd class="col-sm-8">{{ ca.organization }}</dd>
|
|
|
|
<dt class="col-sm-4">组织单位</dt>
|
|
<dd class="col-sm-8">{{ ca.organizational_unit or 'N/A' }}</dd>
|
|
|
|
<dt class="col-sm-4">国家</dt>
|
|
<dd class="col-sm-8">{{ ca.country }}</dd>
|
|
|
|
<dt class="col-sm-4">州/省</dt>
|
|
<dd class="col-sm-8">{{ ca.state or 'N/A' }}</dd>
|
|
|
|
<dt class="col-sm-4">城市</dt>
|
|
<dd class="col-sm-8">{{ ca.locality or 'N/A' }}</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="card-title">技术信息</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<dl class="row">
|
|
<dt class="col-sm-4">密钥长度</dt>
|
|
<dd class="col-sm-8">{{ ca.key_size }}位</dd>
|
|
|
|
<dt class="col-sm-4">有效期</dt>
|
|
<dd class="col-sm-8">{{ ca.days_valid }}天</dd>
|
|
|
|
<dt class="col-sm-4">创建者</dt>
|
|
<dd class="col-sm-8">{{ ca.created_by }}</dd>
|
|
|
|
<dt class="col-sm-4">创建时间</dt>
|
|
<dd class="col-sm-8">{{ ca.created_at.strftime('%Y-%m-%d %H:%M') }}</dd>
|
|
|
|
<dt class="col-sm-4">证书路径</dt>
|
|
<dd class="col-sm-8"><code>{{ ca.cert_path }}</code></dd>
|
|
|
|
<dt class="col-sm-4">私钥路径</dt>
|
|
<dd class="col-sm-8"><code>{{ ca.key_path }}</code></dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
<h5 class="card-title mb-0">颁发的证书</h5>
|
|
<a href="{{ url_for('create_certificate_view') }}?ca_id={{ ca.id }}" class="btn btn-sm btn-primary">创建证书</a>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>通用名</th>
|
|
<th>状态</th>
|
|
<th>有效期至</th>
|
|
<th>创建时间</th>
|
|
<th>操作</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for cert in certificates %}
|
|
<tr>
|
|
<td>{{ cert.id }}</td>
|
|
<td>{{ cert.common_name }}</td>
|
|
<td>
|
|
{% if cert.status == 'active' %}
|
|
<span class="badge bg-success">有效</span>
|
|
{% elif cert.status == 'revoked' %}
|
|
<span class="badge bg-danger">已吊销</span>
|
|
{% else %}
|
|
<span class="badge bg-secondary">已过期</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ cert.expires_at.strftime('%Y-%m-%d') }}</td>
|
|
<td>{{ cert.created_at.strftime('%Y-%m-%d') }}</td>
|
|
<td>
|
|
<a href="{{ url_for('certificate_detail', cert_id=cert.id) }}" class="btn btn-sm btn-info">详情</a>
|
|
</td>
|
|
</tr>
|
|
{% else %}
|
|
<tr>
|
|
<td colspan="6" class="text-center">该CA尚未颁发任何证书</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |