Ситуация:
Я создал веб-сайт, который позволяет пользователям создавать свои собственные простые подсайты. Первоначально они находятся на поддоменах (т. Е. newsite.websitecreator.com
). К ним применяется SSL с помощью группового сертификата *.websitecreator.com
. Все работает отлично!
Я также создал средство, позволяющее пользователям приобретать собственный домен через API или маршрутизировать свой собственный домен, чтобы он указывал на их субдомен. Для этого создается CNAME
и указывается на поддомен. Это маршрутизация и хорошо, используя строку включения в конфигурации nginx, которая включает все пользовательские домены:
include /home/forge/websitecreator.com/public/content/websitecreator-customer-domains.conf;
Issue
Основнойпроблема заключается в применении SSL к пользовательским доменам. Очевидно, что SSL должен быть установлен на сервере, который был опробован с помощью опции LegeEncrypt SSL Forge на панели инструментов, с целью использования API Forge для будущего LetsEncrypt, когда это будет автоматизировано. Однако, это дает мне следующую ошибку:
Cloning into 'letsencrypt15721234230'...
ERROR: Challenge is invalid! (returned: invalid) (result: {
"type": "http-01",
"status": "invalid",
"error": {
"type": "urn:ietf:params:acme:error:unauthorized",
"detail": "Invalid response from http://newcustomdomain.co.uk/.well-known/acme-challenge/Da6CtvOTJnQVHQyENujDSih81TKuejKuaAWCWXsJKus [88.123.456.9]: \"\u003c!DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.01 Frameset//EN\\\" \\\"http://www.w3.org/TR/html4/frameset.dtd\\\"\u003e\u003chtml\u003e\u003chead\u003e\u003cmeta http-eq\"",
"status": 403
},
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/995722342/n7xg9g",
"token": "Da6CtvOTJnQVhh2h3hn2jbSih81TKuejKuaAWCWXsJKus",
"validationRecord": [
{
"url": "http://newcustomdomain.co.uk/.well-known/acme-challenge/Da6CtvOTJnQVHQyENujDSih81TKuejKuaAWCWXsJKus",
"hostname": "newcustomdomain.co.uk",
"port": "80",
"addressesResolved": [
"88.123.123.9"
],
"addressUsed": "66.343.234.9"
}
]
})
Код состояния 403
говорит мне, что это по какой-то причине не авторизовано.
Вопрос
Несмотря на опробованные выше подходы, мой вопрос к сообществу SO: учитывая текущую настройку (Forge, Laravel, nginx и т. Д.), Как бы вы подошли к этому, и любые примеры кода / примеров были бы очень благодарны.