domain updtae
This commit is contained in:
parent
e0c9f44eba
commit
a6f9595444
|
|
@ -25,89 +25,86 @@ if (file_exists($jsonFile)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
<div class="containerindex">
|
||||||
|
<div class="grid">
|
||||||
|
<div class="wrap">
|
||||||
|
<div class="card">
|
||||||
|
<form id="certForm" method="post" action="request_cert.php">
|
||||||
|
<label for="domain">Primary domain</label>
|
||||||
|
<input id="domain" name="domain" type="text" placeholder="example.com" required pattern="^[A-Za-z0-9.-]{1,253}$" value="<?php if ($data['domain'] !== "example.com") echo $data['domain']; ?>" />
|
||||||
|
|
||||||
<body>
|
<label for="subdomains" class="muted">Subdomains</label>
|
||||||
<div class="containerindex">
|
<input id="subdomains" name="subdomains" type="text" placeholder="example.com (optional)" value="<?php if ($data['subdomain'] !== "www.example.com") echo $data['subdomain']; ?>" />
|
||||||
<div class="grid">
|
|
||||||
<div class="wrap">
|
|
||||||
<div class="card">
|
|
||||||
<form method="post" action="request_cert.php">
|
|
||||||
<label for="domain">Primary domain</label>
|
|
||||||
<input id="domain" name="domain" type="text" placeholder="example.com" required pattern="^[A-Za-z0-9.-]{1,253}$" value="<?php if ($data['domain'] !== "example.com") echo $data['domain']; ?>" />
|
|
||||||
|
|
||||||
<label for="subdomains" class="muted">Subdomains</label>
|
<label for="email">Contact email (for Let\'s Encrypt notices)</label>
|
||||||
<input id="subdomains" name="subdomains" type="text" placeholder="example.com (optional)" value="<?php if ($data['subdomain'] !== "www.example.com") echo $data['subdomain']; ?>" />
|
<input id="email" name="email" type="email" placeholder="your_name@example.com" value="<?php if ($data['email'] !== "name@example.com") echo $data['email']; ?>" required />
|
||||||
|
|
||||||
<label for="email">Contact email (for Let\'s Encrypt notices)</label>
|
|
||||||
<input id="email" name="email" type="email" placeholder="your_name@example.com" value="<?php if ($data['email'] !== "name@example.com") echo $data['email']; ?>" required />
|
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div>
|
<div>
|
||||||
<label for="staging">Test mode</label>
|
<label for="staging">Test mode</label>
|
||||||
<select id="staging" name="staging">
|
<select id="staging" name="staging">
|
||||||
<option value="0">Production</option>
|
<option value="0">Production</option>
|
||||||
<option value="1">Staging (use for testing to avoid rate limits)</option>
|
<option value="1">Staging (use for testing to avoid rate limits)</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" id="agree_tc" name="agree_tc" required />
|
<input type="checkbox" id="agree_tc" name="agree_tc" required />
|
||||||
<div>
|
<div>
|
||||||
<label for="agree_tc" style="font-weight:700">I agree to Certbot's Terms of Service and confirm that ports <strong>80 (HTTP)</strong> and <strong>443 (HTTPS)</strong> are forwarded to this server.</label>
|
<label for="agree_tc" style="font-weight:700">I agree to Certbot's Terms of Service and confirm that ports <strong>80 (HTTP)</strong> and <strong>443 (HTTPS)</strong> are forwarded to this server.</label>
|
||||||
<div class="muted">By checking this you authorise the server operator to run Certbot and modify nginx configuration for the supplied domain(s).</div>
|
<div class="muted">By checking this you authorise the server operator to run Certbot and modify nginx configuration for the supplied domain(s).</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="links">
|
<div class="links">
|
||||||
<a href="https://letsencrypt.org/repository/#let-s-encrypt-subscriber-agreement" target="_blank" rel="noopener">Certbot / Let's Encrypt Terms & Conditions</a>
|
<a href="https://letsencrypt.org/repository/#let-s-encrypt-subscriber-agreement" target="_blank" rel="noopener">Certbot / Let's Encrypt Terms & Conditions</a>
|
||||||
•
|
•
|
||||||
<a href="https://letsencrypt.org/privacy/">Privacy Policy</a>
|
<a href="https://letsencrypt.org/privacy/">Privacy Policy</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<button type="submit">Request Certificate</button>
|
<button type="submit">Request Certificate</button>
|
||||||
<button type="reset" class="ghost">Reset</button>
|
<button type="reset" class="ghost">Reset</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="note">
|
<div class="note">
|
||||||
<strong>Why ports 80 and 443 are required</strong>
|
<strong>Why ports 80 and 443 are required</strong>
|
||||||
<pre>
|
<pre>
|
||||||
- Port 80 (HTTP) is used by Certbot for the HTTP-01 challenge: Let's Encrypt connects over HTTP to verify you control the domain.
|
- Port 80 (HTTP) is used by Certbot for the HTTP-01 challenge: Let's Encrypt connects over HTTP to verify you control the domain.
|
||||||
- Port 443 (HTTPS) is required to serve TLS traffic after the certificate is issued. Nginx must accept HTTPS on port 443 so browsers and streaming clients can connect securely.
|
- Port 443 (HTTPS) is required to serve TLS traffic after the certificate is issued. Nginx must accept HTTPS on port 443 so browsers and streaming clients can connect securely.
|
||||||
|
|
||||||
|
|
||||||
Ensure both ports are reachable from the public internet and forwarded to this server's IP. If you use a firewall, add rules to allow inbound TCP 80 and 443.
|
Ensure both ports are reachable from the public internet and forwarded to this server's IP. If you use a firewall, add rules to allow inbound TCP 80 and 443.
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
document.getElementById('certForm').addEventListener('submit', function(e) {
|
document.getElementById('certForm').addEventListener('submit', function(e) {
|
||||||
var dom = document.getElementById('domain').value.trim();
|
var dom = document.getElementById('domain').value.trim();
|
||||||
var subs = document.getElementById('subdomains').value.trim();
|
var subs = document.getElementById('subdomains').value.trim();
|
||||||
if (!dom) {
|
if (!dom) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
alert('Primary domain is required');
|
alert('Primary domain is required');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var ok = document.getElementById('agree_tc').checked;
|
var ok = document.getElementById('agree_tc').checked;
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
alert('You must agree to the terms and confirm ports 80 and 443 are forwarded.');
|
alert('You must agree to the terms and confirm ports 80 and 443 are forwarded.');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
|
||||||
<?php include 'footer.php'; ?>
|
<?php include 'footer.php'; ?>
|
||||||
|
|
@ -630,6 +630,121 @@ include 'static.php';
|
||||||
max-width: 100%
|
max-width: 100%
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ===== CERT REQUEST PAGE ADDON ===== */
|
||||||
|
|
||||||
|
/* wrapper */
|
||||||
|
.wrap {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* labels */
|
||||||
|
.wrap label {
|
||||||
|
display: block;
|
||||||
|
margin-top: 14px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* inputs */
|
||||||
|
.wrap input[type=text],
|
||||||
|
.wrap input[type=email],
|
||||||
|
.wrap select {
|
||||||
|
width: 100%;
|
||||||
|
padding: 14px 12px;
|
||||||
|
border-radius: 10px;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
background: #020617;
|
||||||
|
color: var(--text);
|
||||||
|
font-size: 14px;
|
||||||
|
transition: .2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap input:focus,
|
||||||
|
.wrap select:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: var(--accent);
|
||||||
|
box-shadow: 0 0 0 2px rgba(56, 189, 248, .15);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* grid row */
|
||||||
|
.wrap .row {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 16px;
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* checkbox block */
|
||||||
|
.wrap .checkbox {
|
||||||
|
display: flex;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 18px;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap .checkbox input {
|
||||||
|
margin-top: 4px;
|
||||||
|
accent-color: #38bdf8;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* links */
|
||||||
|
.wrap .links {
|
||||||
|
margin-top: 14px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap .links a {
|
||||||
|
color: #38bdf8;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap .links a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* buttons row */
|
||||||
|
.wrap .actions {
|
||||||
|
display: flex;
|
||||||
|
gap: 12px;
|
||||||
|
margin-top: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap .ghost {
|
||||||
|
background: transparent;
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
color: var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* info note box */
|
||||||
|
.wrap .note {
|
||||||
|
margin-top: 20px;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: var(--radius);
|
||||||
|
background: rgba(255, 255, 255, .03);
|
||||||
|
border: 1px solid var(--border);
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* code block */
|
||||||
|
.wrap pre {
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 12px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #020617;
|
||||||
|
border: 1px dashed var(--border);
|
||||||
|
color: #cbd5e1;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* responsive */
|
||||||
|
@media(max-width:700px) {
|
||||||
|
.wrap .row {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue