-1

我正在使用课程证书,但学生无法下载证书。证书下载按钮显示在仪表板上,但链接看起来像

http://localhost:18090/downloads/e3a9bbf9353743e994df6863467cfcca/Certificate.pdf

显然,我无法下载证书,即使将地址更改为我的服务器的地址,我也无法使其正常工作。

我在哪里可以修改它以启用证书下载?

PS.:如果我导航到路径 /edx/var/certs/www-data/downloads/e3a9bbf9353743e994df6863467cfcca/Certificate.pdf 我可以看到该学生的证书已正确生成。

谢谢!

4

3 回答 3

1

默认情况下,证书下载 URL 没有身份验证。在最新版本的 open-edx 中,有一个默认的 nginx 配置应该可以工作:

server {
  listen 18090 default_server;

  location / {
    root /edx/var/certs/www-data;
         satisfy any;

     allow 127.0.0.1;
     deny all;

     auth_basic            "Restricted";
     auth_basic_user_file  /edx/app/nginx/nginx.htpasswd;

     index index.html
     proxy_set_header X-Forwarded-Proto https;
    try_files $uri $uri/valid.html =404;
  }
}

检查以确保您有此 nginx 配置文件,/edx/app/nginx/sites-enabled并且您没有任何防火墙规则会阻止您在该端口上连接。

于 2014-08-11T17:49:32.457 回答
1

您的下载 URL 包含http://localhost:18090的原因是因为它是为此处定义的证书生成过程定义的默认值。

我在哪里可以修改它以启用证书下载?

您将需要重新定义和覆盖值 CERT_DOWNLOAD_URL 以匹配您在 /edx/app/edx_ansible/ 中的 server-vars.yml 文件或 /edx/app/certs/ 中的 env.json 文件中的需要,具体取决于您的方式已经定义了您的构建过程。

如果更改 server-vars.yml,则需要运行以下命令来编译/生成资源(包括 env.json)并重新启动 certs 进程:

sudo /edx/bin/update read-only-certificate-code <your-release e.g. named-release/birch> 

如果您更改 env.json,您将需要运行以下命令来重新启动证书过程:

sudo -u www-data /edx/bin/supervisorctl -c /edx/app/supervisor/supervisord.conf restart certs

除了 CERT_DOWNLOAD_URL 之外,还需要设置其他变量来自定义您的环境,例如 CERT_VERIFY_URL。

Open edX 一般讨论板上与此相关的另一个很好的资源是这里。它描述了使用 S3 作为证书存储库并影响您将用于 CERT_DOWNLOAD_URL 的值。

于 2015-05-18T21:18:27.280 回答
0

你是从自己的机器上下载的?http://localhost:18090是您自己计算机上的端口 18090。(我想你注意到了)。

现在,edX 上的实际链接指向服务器,然后该服务器指向验证服务器(当光标位于“下载”按钮上时,您可以看到)。当然,edX 不会让您立即下载证书 - 如果您想以编程方式进行,您必须遵循程序中的身份验证协议。

另一方面,您只标记了“edx”标签,这并没有告诉我们您真正想要做什么。

于 2014-07-17T15:51:01.927 回答