打开edX - 证书 - 学生无法下载

时间:2014-07-17 15:28:20

标签: edx

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

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

显然,我无法下载证书,甚至将地址更改为我的服务器,我无法让它工作。

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

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

谢谢!

3 个答案:

答案 0 :(得分: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;
  }
}

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

答案 1 :(得分:0)

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

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

另一方面,您只标记了'edx'标记,但这并不能说明您真正想要做什么。

答案 2 :(得分:0)

下载网址包含http://localhost:18090的原因是因为它是为定义的证书生成流程here定义的默认值。

  

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

您需要重新定义和覆盖值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一般性讨论区上与此相关的另一个好资源是here。它描述了使用S3作为证书的存储库,并影响您将用于CERT_DOWNLOAD_URL的值。