我的工作是在我们的 seafile 服务器上配置 SSL,我是 linux/certificate 的初学者。
我们有来自 GoDaddy 的通配符证书,并且需要转换 crt 和密钥扩展,我配置了default.conf
设置适当的配置,如下所示:
#
# The default server
#
server {
listen 80;
server_name ***.*******.com;
}
server {
listen 12443;
ssl on;
ssl_certificate /etc/pki/tls/certs/*****.crt;
ssl_certificate_key /etc/pki/tls/certs/*****.key;
server_name ***.*******.com;
location / {
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
access_log /var/log/nginx/seahub.access.log;
error_log /var/log/nginx/seahub.error.log;
}
SSL 中的 URL 运行良好,这边一切正常,但在工作站客户端,存在同步问题,库卡在“连接到服务器”时。服务器版本为 4.0.2,客户端版本为 4.3.4。
seafile.log
当我尝试使用证书验证同步库时,出现此问题:
[10/20/15 20:12:15] http-tx-mgr.c(653): libcurl failed to GET https://***.******.com:12443/seafhttp/protocol-version: Peer certificate cannot be authenticated with given CA certificates.
[10/20/15 20:12:15] clone-mgr.c(812): Transition clone state for 9156de90 from [connect] to [connect].
[10/20/15 20:12:18] clone-mgr.c(812): Transition clone state for 9156de90 from [connect] to [canceled].
当然,有一个临时解决方案,即在客户端高级选项中删除证书验证,但让它正常工作就更好了。
我是否遗漏了什么?任何帮助都将不胜感激,谢谢。
答案1
由于这个问题有点过时了,因此它是为了未来的访问者而回答的。
Seafile 客户端中“连接到服务器”状态未结束通常是由于客户端无法检查证书。当您使用自签名证书时会发生这种情况,但如果您的 Web 服务器或 Seafile 未配置正确的主机名,也可能会发生这种情况,在这种情况下检查也会失败。
您可以在高级设置对话框中将客户端配置为不验证证书。