【发布时间】:2016-09-12 06:21:17
【问题描述】:
我正在尝试使用 cakephp 安装 LetsEncrypt,但遇到了一些问题。让我描述一下:
首先,我在装有 CentOS 6 的服务器上安装 LetsEncrypt。
正如在几个网站上提到的,它需要将 python 从 2.6 升级到 2.7,因为 LetsEncrypt 需要 Python 2.7。我做到了。
如果我运行./letsencrypt-auto,我会得到
“您的操作系统上还没有可用的安装程序;请尝试运行“letsencrypt-auto certonly”以获取可以手动安装的证书”
我知道这是正常的,因为 CentOS 6 没有安装程序。
所以我运行./letsencrypt-auto certonly。出现一个窗口。我可以选择:
- 将文件放在 webroot 目录中
- 自动使用临时网络服务器
所以我按 1。然后我输入我的域名。我看到了:
- 输入新的 webroot
我按确定,我看到我的根目录。我选择/root
然后我有以下错误:
授权程序失败。 www.example.com (http-01): urn:acme:error:unauthorized :: 客户端缺少足够的 授权 :: 来自无效的响应 http://www.example.com/.well-known/acme-challenge/-CnpDIgxBB9EOH-BCssGOyiunFjnMlGLWhWw9roE4Ds: " 500 Internal Server Error Inter"
重要提示: - 服务器报错如下:
域:www.example.com 类型:未经授权 详细信息:无效 来自http://www.example.com/.well-known的回复
/acme 挑战/-CnpDIgxBB9EOH-BCssGOyiunFjnMlGLWhWw9roE4Ds:
"
500 内部服务器错误
国际米兰要修复这些错误,请确保您的域名是
正确输入和该域的 DNS A 记录
包含正确的 IP 地址。
cakephp 来了。如前所述,我正在使用 cakephp。似乎对于这个特定问题,您需要修改提到的 htaccess 文件here
我需要在root htaccess 和app/.htaccess 中添加"RewriteRule ^(\.well-known/.*)$ $1 [L]" 作为第一条重写规则
我做了什么。
root .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(\.well-known/.*)$ $1 [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
AddDefaultCharset UTF-8
</IfModule>
app/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(\.well-known/.*)$ $1 [L]
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
AddDefaultCharset UTF-8
</IfModule>
但我还是有同样的问题
知道我做错了什么吗?
非常感谢
【问题讨论】:
-
in the root htaccess and the app/.htaccess您服务器的文档根目录应该是app/webroot,您应该更改的唯一htaccess 文件(可能)是app/webroot/.htaccess。鉴于您正在做的事情 - 您可以简单地将您的应用程序移开以生成和安装证书,然后将其移回。 -
感谢您的帮助。我尝试使用 app/webroot 作为“输入新的 webroot”,但我仍然遇到问题
标签: cakephp lets-encrypt