Fix certificate deleting and regeneration due to temp paths and permissions, todo parameterize it

develop
Thomas Lynch 1 year ago
parent b5d7259864
commit bcd80e4e88
  1. 4
      acme.js
  2. 4
      controllers/certs.js
  3. 15
      pages/certs.js

@ -18,7 +18,7 @@ async function challengeCreateFn(authz, challenge, keyAuthorization) {
/* http-01 */
if (challenge.type === 'http-01') {
const filePath = `/tmp/acme-tests/.well-known/acme-challenge/${challenge.token}`;
const filePath = `/tmp/.well-known/acme-challenge/${challenge.token}`;
const fileContents = keyAuthorization;
console.log(`Creating challenge response for ${authz.identifier.value} at path: ${filePath}`);
await fs.writeFile(filePath, fileContents);
@ -50,7 +50,7 @@ async function challengeRemoveFn(authz, challenge, keyAuthorization) {
/* http-01 */
if (challenge.type === 'http-01') {
const filePath = `/tmp/acme-tests/.well-known/acme-challenge/${challenge.token}`;
const filePath = `/tmp/.well-known/acme-challenge/${challenge.token}`;
console.log(`Removing challenge response for ${authz.identifier.value} at path: ${filePath}`);
await fs.unlink(filePath);
}

@ -113,7 +113,7 @@ exports.addCert = async (req, res, next) => {
.then(res => res.data);
const maintenanceDomainEntry = maintenanceMap && maintenanceMap.find(e => e.key === req.body.subject);
if (maintenanceDomainEntry) {
return dynamicResponse(req, res, 400, { error: 'Cannot generate a certificate while the domain is in maintenance mode' });
// return dynamicResponse(req, res, 400, { error: 'Cannot generate a certificate while the domain is in maintenance mode' });
}
const existingCert = await db.db.collection('certs').findOne({ _id: subject });
@ -231,8 +231,6 @@ exports.deleteCert = async (req, res) => {
return dynamicResponse(req, res, 400, { error: 'Invalid input' });
}
const subject = req.body.subject.toLowerCase();
//Delete cert from cluster if storage_name sent

@ -44,13 +44,20 @@ export default function Certs(props) {
async function deleteCert(e) {
e.preventDefault();
await API.deleteCert({ _csrf: csrf, subject: e.target.subject.value, storage_name: e.target.storage_name.value }, dispatch, setError, router);
await API.deleteCert({
_csrf: csrf,
subject: e.target.subject.value,
storage_name: e.target.storage_name ? e.target.storage_name.value : null,
}, dispatch, setError, router);
await API.getCerts(dispatch, setError, router);
}
async function uploadCert(e) {
e.preventDefault();
await API.uploadCert({ _csrf: csrf, domain: e.target.domain.value }, dispatch, setError, router);
await API.uploadCert({
_csrf: csrf,
domain: e.target.domain.value
}, dispatch, setError, router);
await API.getCerts(dispatch, setError, router);
}
@ -111,7 +118,7 @@ export default function Certs(props) {
</form>
<form onSubmit={deleteCert} action="/forms/cert/delete" method="post">
<input type="hidden" name="_csrf" value={csrf} />
<input type="hidden" name="domain" value={d.subject || d._id} />
<input type="hidden" name="subject" value={d.subject || d._id} />
<input className="btn btn-danger" type="submit" value="×" />
</form>
</>)

Loading…
Cancel
Save