<?php $this->layout('layout', ['title' => $title]); ?>
|
|
|
|
<div class="column">
|
|
|
|
<h1>X-Ray Certificate Setup</h1>
|
|
|
|
<?php if(isset($_SESSION['me'])): ?>
|
|
<?php if(isset($verified) && $verified): ?>
|
|
<div class="section">
|
|
<p>The challenge was saved and is now accessible via the <code>.well-known</code> path.</p>
|
|
<p><a href="/.well-known/acme-challenge/<?= $token ?>">view challenge</a></p>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="section">
|
|
<form class="" action="/cert/save-challenge" method="post">
|
|
<div class="field"><input type="text" name="token" placeholder="http://xray.p3k.io/.well-known/acme-challenge/_Tzyxwvut..." value="<?= isset($token) ? $token : '' ?>"></div>
|
|
<div class="field"><textarea name="challenge" rows="4" placeholder="challenge value"><?= isset($challenge) ? $challenge : '' ?></textarea></div>
|
|
<div class="field"><button type="submit" class="button">Save</button></div>
|
|
</form>
|
|
</div>
|
|
<?php endif ?>
|
|
|
|
<div style="margin-top: 1em; font-size: 12px;">
|
|
Signed in as <?= $_SESSION['me'] ?> <a href="/cert/logout">Sign Out</a>.
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="section">
|
|
<form class="" action="/cert/auth" method="get">
|
|
<div class="field"><input type="url" name="me" placeholder="https://you.example.com"></div>
|
|
<div class="field"><button type="submit" class="button">Sign In</button></div>
|
|
|
|
<input type="hidden" name="client_id" value="https://<?= $_SERVER['SERVER_NAME'] ?>/">
|
|
<input type="hidden" name="redirect_uri" value="https://<?= $_SERVER['SERVER_NAME'] ?>/cert/redirect">
|
|
<input type="hidden" name="state" value="<?= isset($state) ? $state : '' ?>">
|
|
</form>
|
|
</div>
|
|
<?php endif ?>
|
|
|
|
</div>
|
|
<script>
|
|
var base = window.location.protocol + "//" + window.location.hostname + "/";
|
|
document.querySelector("input[name=client_id]").value = base;
|
|
document.querySelector("input[name=redirect_uri]").value = base+"cert/redirect";
|
|
</script>
|
|
<style type="text/css">
|
|
body {
|
|
color: #212121;
|
|
font-family: "Helvetica Neue", "Calibri Light", Roboto, sans-serif;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
body {
|
|
background-color: #e9e9e9;
|
|
font-size: 16px;
|
|
}
|
|
h1 {
|
|
padding-top: 6rem;
|
|
padding-bottom: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
a {
|
|
color: #4183c4;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.column {
|
|
max-width: 450px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.section {
|
|
border: 1px #ccc solid;
|
|
border-radius: 6px;
|
|
background: white;
|
|
padding: 12px;
|
|
margin-top: 2em;
|
|
}
|
|
.help {
|
|
text-align: center;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
form .field {
|
|
margin-bottom: .5rem;
|
|
display: flex;
|
|
}
|
|
form input, form textarea, form button {
|
|
width: 100%;
|
|
border: 1px #ccc solid;
|
|
border-radius: 4px;
|
|
flex: 1 0;
|
|
font-size: 1rem;
|
|
}
|
|
form input, form textarea {
|
|
padding: .5rem;
|
|
}
|
|
form .button {
|
|
background-color: #009c95;
|
|
border: 0;
|
|
border-radius: 4px;
|
|
color: white;
|
|
font-weight: bold;
|
|
font-size: 1rem;
|
|
cursor: pointer;
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
|
|
</style>
|