我有一个网站
我的站点
和一台打印机
mysite.com:631/打印机/myprinter
嗯,https:// www.mysite.com 运行正常且经过验证,但 https:// www.mysite.com:631/printers/myprinter 却不行。它说连接不安全,我无法安装打印机。
这是我在 CUPS 服务器的 conf.d 中的内容:
DefaultEncryption Required
ServerCertificate /etc/letsencrypt/live/mysite/cert.pem
ServerKey /etc/letsencrypt/live/mysite/privkey.pem
SSLPort 443
有什么帮助可以使打印机和站点变为 https 吗?
答案1
将您的 SSL(例如 LetsEncrypt )复制到 cups 目录,如下所示:
cat /etc/letsencrypt/live/yourdomain.com/fullchain.pem >> /etc/cups/ssl/server.crt
cat /etc/letsencrypt/live/yourdomain.com/privkey.pem >> /etc/cups/ssl/server.key
重新启动cups服务器:
systemctl restart cups # on CentOS
答案2
因此,您还需要确保 /etc/cups/ssl 中只有两个文件。server.key 和 server.crt,向此目录添加任何额外的文件都会破坏我的 ssl。
但请确保它们链接到你的 lets encrypt 文件夹,正如其他人所说的那样。
答案3
我在这里时会添加一些注释。
我正在使用 Nginx 通过 CUPS IP/端口转发一个漂亮的域名。
这地点这里(与我无关)使它点击。
无论如何,在我的 nginx 配置中我有一个这样的位置块:
location /printers {
// this is the info that came from the site mentioned
proxy_pass http://localhost:631;
proxy_set_header Host "127.0.0.1";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
我使用 Lets Encrypt 生成了我的证书,转到 SchiWaGoA 提到的同一文件夹,symlink
因为cat
我遇到了权限问题,例如:
ln -s /lets-encrypt-path/fullchain.pem /cups-ssl-path/server.crt (same as above)
cupds.conf
我Listen localhost:631
有
<Location />
Order allow, deny
Allow from @LOCAL
</Location>
在这个文件的底部我添加了加密内容,因为我的文件中没有它
DefaultEncryption Required
ServerCertificate /etc/cups/ssl/server.crt
ServerKey /etc/cups/ssl/server.key
就是这样,我能够使用带有https://example.com/printers/printer-name
URL 方案的共享主机名 URL 以及 MS PS 驱动程序在我的 Windows 10 客户端上添加打印机。
注意。我还没有 100% 确定<Location />
,所以请检查它是否适合您的需求。
将添加 atm,我注意到服务器一直在关闭,不像我以前的非 https CUPS,很奇怪。
看起来你需要添加此行到cupsd.conf
ServerAlias *
无论如何,这是我的问题之一,我会监控它是否有所改善。
重启后似乎有所改善,如果我发现它经常宕机的具体原因,我会报告。非 https 的已经上线几个月了。
我最终修改了 systemd 文件
Restart=always
RestartSec=3
此外,cert 行应该进入,cups-files.conf
而不是cupsd.conf
根据 cups 的调试日志。现在不是问题,但将来会成为问题。