Projekt

Obecné

Profil

Stáhnout (15.6 KB) Statistiky
| Větev: | Tag: | Revize:
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
    <meta charset="UTF-8">
5
    <title>X.509 Certificate Management</title>
6
    <link rel="stylesheet" href="/static/css/bootstrap.min.css">
7
    <link href="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3/dist/vue-loading.css" rel="stylesheet">
8
    <link rel="stylesheet" href="/static/css/app.css">
9
</head>
10
<body class="p-4">
11
    <div id="certificate-detailed-view-content" class="p-4">
12
        <div v-if="loading">
13
            <loading :active.sync="loading"
14
                     :can-cancel="false"
15
                      loader="dots"
16
                     :is-full-page="true"></loading>
17
        </div>
18
        <div id="404_page" v-if="!loading && error" align="center" v-cloak>
19
            <div class="fof">
20
                    <h1>Error 404</h1>
21
            </div>
22
            <a href="/" class="caret-left">Home</a>
23
        </div>
24
        <div v-if="!loading && !error" v-cloak>
25
            <div class="row">
26
                <a href="/static/index.html"><div class="caret-left font-weight-bold ml-2 mb-2">Home</div></a>
27
            </div>
28
            <h1 class="mb-5 text-center">Certificate Detailed View</h1>
29
            <div class="alert alert-success" v-if="successMessage !== ''" role="alert" v-cloak>
30
                {{ successMessage }}
31
            </div>
32
            <div v-if="errorMessage !== ''" class="alert alert-danger" v-cloak role="alert">
33
                {{ errorMessage }}
34
            </div>
35
            <div class="row">
36
                <div class="col-xl-6">
37
                    <table class="ml-auto mr-auto mb-4">
38
                        <tr>
39
                            <div class="form-group">
40
                                <td><label for="validity_start">Validity start:</label></td>
41
                                <td class="pl-3">
42
                                    <input :value="startDate" type="text" id="validity_start" name="validity_start" class="form-control" disabled>
43
                                </td>
44
                            </div>
45
                        </tr>
46
                        <tr>
47
                            <div class="form-group">
48
                                <td><label for="validity_end">Validity end:</label></td>
49
                                <td class="pl-3">
50
                                    <input :value="endDate" type="text" id="validity_end" name="validity_end" class="form-control" disabled>
51
                                </td>
52
                            </div>
53
                        </tr>
54
                        <tr>
55
                            <td colspan="2"><h5>Subject</h5></td>
56
                        </tr>
57
                        <tr>
58
                            <div class="form-group">
59
                                <td><label for="subject_C">Country Code:</label></td>
60
                                <td class="pl-3">
61
                                    <input :value="certificate.subject.C" type="text" id="subject_C" name="subject_C" class="form-control" disabled>
62
                                </td>
63
                            </div>
64
                        </tr>
65
                        <tr>
66
                            <div class="form-group">
67
                                <td><label for="subject_ST">Province/State:</label></td>
68
                                <td class="pl-3">
69
                                    <input :value="certificate.subject.ST" type="text" id="subject_ST" name="subject_ST" class="form-control" disabled>
70
                                </td>
71
                            </div>
72
                        </tr>
73
                        <tr>
74
                            <div class="form-group">
75
                                <td><label for="subject_L">Locality:</label></td>
76
                                <td class="pl-3">
77
                                    <input :value="certificate.subject.L" type="text" id="subject_L" name="subject_L" class="form-control" disabled>
78
                                </td>
79
                            </div>
80
                        </tr>
81
                        <tr>
82
                            <div class="form-group">
83
                                <td><label for="subject_CN">Common Name:</label></td>
84
                                <td class="pl-3">
85
                                    <input :value="certificate.subject.CN" type="text" id="subject_CN" name="subject_CN" class="form-control" disabled>
86
                                </td>
87
                            </div>
88
                        </tr>
89
                        <tr>
90
                            <div class="form-group">
91
                                <td><label for="subject_O">Organization:</label></td>
92
                                <td class="pl-3">
93
                                    <input :value="certificate.subject.O" type="text" id="subject_O" name="subject_O" class="form-control" disabled>
94
                                </td>
95
                            </div>
96
                        </tr>
97
                        <tr>
98
                            <div class="form-group">
99
                                <td><label for="subject_OU">Organization Unit:</label></td>
100
                                <td class="pl-3">
101
                                    <input :value="certificate.subject.OU" type="text" id="subject_OU" name="subject_OU" class="form-control" disabled>
102
                                </td>
103
                            </div>
104
                        </tr>
105
                        <tr>
106
                            <div class="form-group">
107
                                <td><label for="subject_emailAddress">Email Address:</label></td>
108
                                <td class="pl-3">
109
                                    <input :value="certificate.subject.emailAddress" type="text" id="subject_emailAddress" name="subject_emailAddress" class="form-control" disabled>
110
                                </td>
111
                            </div>
112
                        </tr>
113
                        <tr>
114
                            <td>Usage:</td>
115
                            <td class="form-check">
116
                                <input class="form-check-input" v-model="certificate.usage.CA" type="checkbox" id="isCA" name="isCA" value="CA" disabled>
117
                                <label class="form-check-label" for="isCA">CA</label><br>
118

    
119
                                <input class="form-check-input" v-model="certificate.usage.digitalSignature" type="checkbox" id="isDigitalSignature" name="isDigitalSignature" value="DigitalSignature" disabled>
120
                                <label class="form-check-label" for="isDigitalSignature">Digital Signature</label><br>
121

    
122
                                <input class="form-check-input" v-model="certificate.usage.authentication" type="checkbox" id="isAuthentication" name="isAuthentication" value="Authentication" disabled>
123
                                <label class="form-check-label" for="isAuthentication">Authentication</label><br>
124

    
125
                                <input class="form-check-input" v-model="certificate.usage.SSL" type="checkbox" id="isSSL_TLS" name="isSSL_TLS" value="SSL_TLS" disabled>
126
                                <label class="form-check-label" for="isSSL_TLS">SSL/TLS</label><br>
127
                            </td>
128
                        </tr>
129
                    </table>
130
                </div>
131
                <div class="col-xl-5">
132
                    <div class="row table-responsive">
133
                        <table class="table">
134
                            <thead class="thead-dark">
135
                                <tr>
136
                                    <th colspan="4" class="text-center">Manage certificate</th>
137
                                </tr>
138
                            </thead>
139
                            <tbody>
140
                                <tr class="d-flex">
141
                                    <td style="width: 30%" class="font-weight-bold">Certificate download:</td>
142
                                    <td><button v-on:click="onCertificateDownload()" class="btn btn-primary btn-sm certificate-control" href="">Certificate</button></td>
143
                                    <td><button v-on:click="onChainDownload()" class="btn btn-primary btn-sm certificate-control" href="">Chain of trust</button></td>
144
                                    <td><button v-on:click="onRootDownload()" class="btn btn-primary btn-sm certificate-control" href="">Root</button></td>
145
                                </tr>
146
                                <tr class="d-flex">
147
                                    <td style="width: 30%" class="font-weight-bold">Key download:</td>
148
                                    <td><button v-on:click="onPublicKeyDownload()" class="btn btn-success btn-sm certificate-control" href="">Public key</button></td>
149
                                    <td><button v-on:click="onPrivateKeyDownload()" class="btn btn-success btn-sm certificate-control" href="">Private key</button></td>
150
                                    <td> </td>
151
                                </tr>
152
                                <tr class="d-flex">
153
                                    <td style="width: 30%" class="font-weight-bold">Actions:</td>
154
                                    <td><button data-toggle="modal" data-target="#deleteModal" class="btn btn-danger btn-sm certificate-control" href="">Delete</button></td>
155
                                    <td><button data-toggle="modal" data-target="#revokeModal" class="btn btn-warning btn-sm certificate-control" href="">Revoke</button></td>
156
                                    <td> </td>
157
                                </tr>
158
                                <tr class="d-flex">
159
                                    <td style="width: 30%" class="font-weight-bold">Endpoints:</td>
160
                                    <td><a class="certificate-control font-weight-bold" :href="crlEndpoint">CRL</a></td>
161
                                    <td><a class="certificate-control font-weight-bold" :href="ocspEndpoint">OCSP</a></td>
162
                                    <td> </td>
163
                                </tr>
164
                                <tr class="d-flex" v-if="id != certificate.CA">
165
                                    <td style="width: 30%" class="font-weight-bold">Issuer:</td>
166
                                    <td><a class="certificate-control font-weight-bold" :href="issuerURL">show details</a></td>
167
                                    <td> </td>
168
                                    <td> </td>
169
                                </tr>
170
                            </tbody>
171
                        </table>
172
                    </div>
173
                    <div class="row table-responsive">
174
                        <table class="table table-striped table-hover">
175
                            <thead class="thead-dark text-center">
176
                                <tr>
177
                                    <th scope="col" colspan="2">Issued Certificates</th>
178
                                </tr>
179
                                <tr>
180
                                    <th class="w-65" scope="col">Common Name</th>
181
                                    <th class="w-35" scope="col">Type</th>
182
                                </tr>
183
                            </thead>
184
                            <tbody>
185
                                <tr class="text-center font-italic">
186
                                    <td v-if="issuedCertificates.length == 0" colspan="2">No issued certificates</td>
187
                                </tr>
188
                                <tr is="issued-by-list-item"
189
                                    v-for="certificate in issuedCertificates"
190
                                    v-bind:certificate="certificate"
191
                                    v-bind:key="certificate.id">
192
                                </tr>
193
                            </tbody>
194
                        </table>
195
                    </div>
196
                </div>
197
            </div>
198
        </div>
199
        <div id="revokeModal" class="modal" tabindex="-1" role="dialog">
200
            <div class="modal-dialog" role="document">
201
                <div class="modal-content">
202
                    <div class="modal-header">
203
                        <h5 class="modal-title">Revoke certificate</h5>
204
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
205
                            <span aria-hidden="true">&times;</span>
206
                        </button>
207
                    </div>
208
                    <div class="modal-body">
209
                        <p>Do you really want to revoke certificate {{ certificate.subject.CN }}?</p>
210
                        <div class="form-group">
211
                            <label for="reasonSelect">Reason: </label>
212
                            <select v-model="revocationReason" class="form-control" id="reasonSelect">
213
                                <option value="unspecified">unspecified</option>
214
                                <option value="keyCompromise">keyCompromise</option>
215
                                <option value="cACompromise">cACompromise</option>
216
                                <option value="affiliationChanged">affiliationChanged</option>
217
                                <option value="superseded">superseded</option>
218
                                <option value="cessationOfOperation">cessationOfOperation</option>
219
                                <option value="certificateHold">certificateHold</option>
220
                                <option value="removeFromCRL">removeFromCRL</option>
221
                                <option value="privilegeWithdrawn">privilegeWithdrawn</option>
222
                                <option value="aACompromise">aACompromise</option>
223
                            </select>
224
                        </div>
225
                    </div>
226
                    <div class="modal-footer">
227
                        <button type="button" v-on:click="onRevoke()" class="btn btn-warning" data-dismiss="modal">Revoke</button>
228
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
229
                    </div>
230
                </div>
231
            </div>
232
        </div>
233
        <div id="deleteModal" class="modal" tabindex="-1" role="dialog">
234
            <div class="modal-dialog" role="document">
235
                <div class="modal-content">
236
                    <div class="modal-header">
237
                        <h5 class="modal-title">Delete certificate</h5>
238
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
239
                            <span aria-hidden="true">&times;</span>
240
                        </button>
241
                    </div>
242
                    <div class="modal-body">
243
                        <p>Do you really want to delete certificate {{ certificate.subject.CN }}?</p>
244
                    </div>
245
                    <div class="modal-footer">
246
                        <button type="button" v-on:click="onDelete()" class="btn btn-danger" data-dismiss="modal">Delete</button>
247
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
248
                    </div>
249
                </div>
250
            </div>
251
        </div>
252
    </div>
253

    
254
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
255
    <script src="https://cdn.jsdelivr.net/npm/vue-loading-overlay@3"></script>
256
    <script src="/static/js/jquery-3.6.0.min.js"></script>
257
    <script src="/static/js/bootstrap.bundle.min.js"></script>
258
    <script src="/static/js/axios.min.js"></script>
259
    <script src="/static/js/constants.js"></script>
260
    <script src="/static/js/utilities.js"></script>
261
    <script src="/static/js/components.js"></script>
262
    <script src="/static/js/certificate.js"></script>
263

    
264
</body>
265
</html>
(1-1/4)