我有一台Epson TM-T88V-i收据打印机,我使用Epson的E-pos Javascript库打印。我一直使用以下URL打印到连接到本地网络的打印机
http://192.168.1.105/cgi-bin/epos/service.cgi?devid=local_printer&timeout=60000
我的应用程序已经不安全但运行正常但我现在已经在我的主域上安装了一个证书,以便从受信任的CA保护它,并且当我打印到打印机的安全URL时遇到了问题{{ 1}}它破坏了我的主域名的安全性 - 标记该站点不安全并以红色穿越HTTPS,因为它正在加载带有证书错误的内容。
当我检查打印机生成的自签名证书时,它有以下问题:
证书 - 主题备用名称缺失证书 此站点不包含主题备用名称扩展名 包含域名或IP地址。
证书 - 缺少此站点缺少有效的,受信任的 证书(net :: ERR_CERT_AUTHORITY_INVALID)。
我曾尝试将证书添加到我信任的证书颁发机构,但这还没有成功。
我已经按照爱普生自己的指南使用OpenSSL创建证书,但我在浏览器中遇到同样的错误。
我搜索了上述错误,但却无法找到有效的解决方案。忽略所有证书错误不是一种选择,因为这适用于实时生产环境。我启用了https://192.168.1.105/cgi-bin/epos/service.cgi?devid=local_printer&timeout=60000
,这也没有用。
如果我需要购买证书,我会知道CA是否可以在没有签名请求的情况下发出证书
非常感谢任何帮助
答案 0 :(得分:1)
管理以排序问题。按照你的教程,但确保当你来到实际证书的配置时添加IP.0到打印机的实际IP。现在我的问题是它没有通过Javascript使用HTTPS连接到打印机,但实际的javascript中的黑客应该这样做。
答案 1 :(得分:1)
这是我最终遵循本指南工作的配置。感谢Mark Farrugia指出要将altNames从DNS.0更改为IP.0 - 这似乎是我们的主要关键点
https://gist.github.com/jchandra74/36d5f8d0e11960dd8f80260801109ab0
#
# epson.cnf
#
[ req ]
prompt = no
distinguished_name = server_distinguished_name
req_extensions = v3_req
[ server_distinguished_name ]
commonName = 192.168.1.105
stateOrProvinceName = mystate
countryName = mycountry
emailAddress = myemail.email.com
organizationName = epson
organizationalUnitName = presales
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[ alt_names ]
IP.0 = 192.168.1.105 -- this is the IP of the printer
必须注意。我必须下载证书并将其添加到我在其他PC上的Chrome自己的可信CA存储中。一旦添加它按预期工作
答案 2 :(得分:0)
为什么:之所以会这样,是因为epson打印机未生成有效的证书或您的PC不信任它,因此它将阻止与打印机的任何连接,并出现类似此图像的警告 HOW:转到您的epson IP,然后单击“处理”,然后PC将具有打印机证书,然后可以正确连接。
转到此链接并进行一些测试: https://xanhtool.github.io/epbex/