我有一个不寻常的用例:
http(s)://192.168.0.1附带问题:由于设备本地连接到PC,因此加密非常无用:是否存在允许与特定URL进行不安全连接的http头?(比如跨域的CORS)
主要问题:是否可以获取私有IP地址的证书?
编辑:似乎Plex有类似的问题,并按照本博客中描述的方式解决了它.这对我来说太大了.
是否可以获取私有IP地址的证书?
证书可以绑定到IP地址(请参阅此内容).您可以将自签名证书颁发给私有地址,但受信任的CA不会将证书颁发给私有地址,因为它无法验证其身份.
例如,颁发给的证书192.168.0.1在任何上下文中理论上都是有效的,受信任的CA不应该允许这样做
Plex通过动态DNS和通配符证书解决了这个问题.使用解析为专用IP的设备的名称(而不是IP)完成连接
是否存在允许与特定URL进行不安全连接的http标头?(比如跨域的CORS)
不,它不存在.浏览器会阻止您的XHR连接,因为它们是从HTTPS页面启动的HTTP连接(混合内容警告).理论上,非安全内容可以被攻击者读取或修改,即使父页面是通过HTTP提供的,因此是正常的,并建议浏览器警告用户.
要修复混合内容和https错误,您可以通过HTTPS和自签名证书提供内容,并请求用户在浏览器中导入根CA.
不能为保留 IP 地址(RFC 1918 和 RFC 4193 范围)/私有 IP 地址(IPv4、IPv6)、内部服务器名称的 Intranet、带有非公共域名后缀的本地服务器名称颁发 SSL 证书。
但是,您可以使用“自签名”证书。创建方法如下:
您需要安装 OpenSSL。例如,在 Ubuntu 上,您可以通过以下方式安装它:(sudo apt-get install openssl
它可能已经安装。输入“openssl version”即可找到)对于 Windows,您可以尝试以下操作: https: //slproweb.com/products/Win32OpenSSL.html
安装 OpenSSL 后,通过在控制台 (LINUX) 或 cmd 提示符 (WINDOWS) 上输入“openssl”转至 OpenSSL 提示符。
$openssl
OpenSSL>
现在执行以下步骤来创建:私钥、证书请求、自签名证书,然后使用以下命令将它们放在一起:
i) 创建名为 mydomain.key 的 KEY:
OpenSSL> genrsa -out mydomain.key 2048
Run Code Online (Sandbox Code Playgroud)
ii) 使用密钥创建名为 mydomain.csr 的证书请求 您可以接受默认选项,或指定您自己的信息:
OpenSSL> req -new -key mydomain.key -out mydomain.csr
Run Code Online (Sandbox Code Playgroud)
iii) 使用上述内容创建证书:
OpenSSL> x509 -req -days 1825 -in mydomain.csr -signkey mydomain.key -out mydomain.crt
Run Code Online (Sandbox Code Playgroud)
iv) 输入以上所有内容来创建 PEM 证书:退出 OpenSSL (OpenSSL> q) 并转到证书位置并执行以下操作:
$ sudo cat mydomain.key mydomain.crt >> mylabs.com.pem
Run Code Online (Sandbox Code Playgroud)
mylabs.com.pem 是您的自签名证书。如果您的服务器支持 https ,您可以在https://192.168.0.1等请求中使用它。请记住检查 https(443) 的端口号。
| 归档时间: |
|
| 查看次数: |
8512 次 |
| 最近记录: |