gpt4 book ai didi

javascript - 访问打印机时禁止显示 "localhost wants to access connected printers Untrusted Website"- QZ-tray

转载 作者:搜寻专家 更新时间:2023-11-01 05:21:05 26 4
gpt4 key购买 nike

如何正确抑制

localhost wants to access connected printers Untrusted Website

访问打印机时的模态?

我已尝试通过此 OpenSSL 命令创建证书:

openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout server.key -out server.crt

然后像这样添加覆盖:

authcert.override=server.crt

qz-tray.properties 文件中。

不过还是一样,对话框没有被抑制。有什么问题吗?

这是完整的证书属性文件:

authcert.override=C:\\Program Files\\QZ Tray\\auth\\server.crt
wss.alias=qz-tray
wss.keypass=keypass
wss.storepass=storepass
wss.host=0.0.0.0

最佳答案

qz-tray.properties 覆盖将在 2.0.2 版本中引入,在撰写本文时,2.0.1 is the latest stable release .

可能的选择:

  • 等待 2.0.2/compile from source并使用 qz-tray.properties 覆盖值

    • -- 或者 --
  • 等待 2.0.2/compile from source但在打包时提供证书,这将允许 override.crt 直接与安装程序一起分发。

    ant nsis -Dauthcert.use=override.crt
    • -- 或者 --
  • 使用 2.0.1 并通过命令行启动带有证书覆盖的软件。例如:

    java -DtrustedRootCert=override.crt -jar qz-tray.jar

由于后一个选项需要修改 QZ Tray 桌面启动器,这最终会在启用自动启动时导致不明显的问题(例如,Windows 上的自动启动由 qz-tray.exe 触发,它将在没有启动的情况下启动) -DtrustedRootCert 参数)。

这就是为什么在 qz-tray.properties 中永久提供证书的 2.0.2 功能更受欢迎的原因。注意,编译最新的 QZ Tray 是一个 few quick steps .

但这只是成功的一半。要抑制安全警告,每条消息都必须进行数字签名。这就是 server.key 发挥作用的地方。我们在示例中将其称为 private-key.pem

尽管 can be done client-side 签名通常在服务器端完成与 risk of key leakage .此过程在 the sign-messages wiki 中有最好的解释。 .

签署消息

PHP 签名示例:

<? // sign-message.php

$KEY = 'private-key.pem'; // or 'server.key', etc
$req = $_GET['request']; // i.e. 'toSign' from JS
$privateKey = openssl_get_privatekey(file_get_contents($KEY));
$signature = null;
openssl_sign($req, $signature, $privateKey);
if ($signature) {
header("Content-type: text/plain");
echo base64_encode($signature);
exit(0);
}
echo '<h1>Error signing message</h1>';
exit(1);

?>

JavaScript:

qz.security.setSignaturePromise(function(toSign) {
return function(resolve, reject) {
$.ajax("/foo/bar/sign-message.php?request=" + toSign).then(resolve, reject);
};
});

qz.security.setCertificatePromise(function(resolve, reject) {
$.ajax("/foo/bar/digital-certificate.txt").then(resolve, reject); // or `server.crt`, etc
});

注意:为防止 key 泄露,私钥应始终保存在网络浏览器无法访问的目录中。

关于javascript - 访问打印机时禁止显示 "localhost wants to access connected printers Untrusted Website"- QZ-tray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40168017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com