ssl.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. const express = require('express')
  2. const router = express.Router()
  3. const _ = require('lodash')
  4. const qs = require('querystring')
  5. /**
  6. * Let's Encrypt Challenge
  7. */
  8. router.get('/.well-known/acme-challenge/:token', (req, res, next) => {
  9. res.type('text/plain')
  10. if (_.get(WIKI.config, 'letsencrypt.challenge', false)) {
  11. if (WIKI.config.letsencrypt.challenge.token === req.params.token) {
  12. res.send(WIKI.config.letsencrypt.challenge.keyAuthorization)
  13. WIKI.logger.info(`(LETSENCRYPT) Received valid challenge request. [ ACCEPTED ]`)
  14. } else {
  15. res.status(406).send('Invalid Challenge Token!')
  16. WIKI.logger.warn(`(LETSENCRYPT) Received invalid challenge request. [ REJECTED ]`)
  17. }
  18. } else {
  19. res.status(418).end()
  20. }
  21. })
  22. /**
  23. * Redirect to HTTPS if HTTP Redirection is enabled
  24. */
  25. // router.all('/*', (req, res, next) => {
  26. // if (WIKI.config.server.sslRedir && !req.secure && WIKI.servers.servers.https) {
  27. // let query = (!_.isEmpty(req.query)) ? `?${qs.stringify(req.query)}` : ``
  28. // return res.redirect(`https://${req.hostname}${req.originalUrl}${query}`)
  29. // } else {
  30. // next()
  31. // }
  32. // })
  33. module.exports = router