我正在为嵌入式Linux设备添加HTTPS支持.我尝试使用以下步骤生成自签名证书:
openssl req -new > cert.csr
openssl rsa -in privkey.pem -out key.pem
openssl x509 -in cert.csr -out cert.pem -req -signkey key.pem -days 1001
cat key.pem>>cert.pem
Run Code Online (Sandbox Code Playgroud)
这有效,但我在使用Google Chrome时遇到了一些错误:
这可能不是您要找的网站!
该网站的安全证书不受信任!
我错过了什么吗?这是构建自签名证书的正确方法吗?
我按照本教程在Windows上创建签名SSL证书用于开发目的,并且它适用于我的一个域(我使用hosts文件来模拟dns).然后我发现我有很多子域名,为每个子域名创建证书会很麻烦.所以我尝试使用wildcard in Common
field 创建证书,如serverfault的一些答案所示.像这样:
Common Name: *.myserver.net/CN=myserver.net
Run Code Online (Sandbox Code Playgroud)
但是,在将此证书导入受信任的根证书颁发机构后,我NET::ERR_CERT_COMMON_NAME_INVALID
在Chrome中遇到了主要域及其所有子域的错误,例如:https://sub1.myserver.net
和https://myserver.net
.
这台服务器无法证明它是myserver.net; 其安全证书来自*.myserver.net/CN = myserver.net.
这可能是由于配置错误或攻击者拦截您的连接造成的.
Common Name字段中是否有错误导致此错误?
我正在尝试wget
自己的盒子,它不能是wget中的内部地址(所以另一位开发人员说).
当我想,我得到这个:
wget http://example.com
--2013-03-01 15:03:30-- http://example.com/
Resolving example.com... 172.20.0.224
Connecting to example.com|172.20.0.224|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.example.com/ [following]
--2013-03-01 15:03:30-- https://www.example.com/
Resolving www.example.com... 172.20.0.224
Connecting to www.example.com|172.20.0.224|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)
我相信这是因为我没有正确设置证书.使用openssl:
openssl s_client -connect example.com:443
CONNECTED(00000003)
15586:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:588:
Run Code Online (Sandbox Code Playgroud)
如果我在另一个站点上执行相同的命令,则会显示整个证书.
也许ssl证书从未在Apache的conf文件中为该域设置?
如果是这样,我应该在虚拟主机中指定什么?除了指定之外还有其他选择,--no-check-certificate
因为我不想这样做吗?
我已经生成了一个包含字段主题alt名称的CSR:
openssl req -out mycsr.pem -new -key mykey.pem -days 365
Run Code Online (Sandbox Code Playgroud)
当我检查它时,它看起来像预期的新字段存在:
X509v3 Subject Alternative Name:
DNS: my.alt.dns
Run Code Online (Sandbox Code Playgroud)
但是,当我使用它来签署证书时,由于某种原因省略了该字段.
我使用以下命令生成它:
openssl ca -out mycert.pem -infiles mycsr.pem
Run Code Online (Sandbox Code Playgroud)
我的CA证书是否必须包含相同的Alt名称才能包括在内?
我在服务器端渲染时遇到错误.
RENDERING ERROR: { [Error: Network error: request to https://api-dev.xyz.io/graphql failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: localhost. is not in the cert's altnames: DNS:*.xyz.io"]
graphQLErrors: null,
networkError:
{ [FetchError: request to https://api-dev.xyz.io/graphql failed, reason: Hostname/IP doesn't match certificate's altnames: "Host: localhost. is not in the cert's altnames: DNS:*.xyz.io"]
name: 'FetchError',
message: 'request to https://api-dev.xyz.io/graphql failed, reason: Hostname/IP doesn\'t match certificate\'s altnames: "Host: localhost. is not in the cert\'s altnames: DNS:*.xyz.io"',
type: 'system',
errno: undefined,
code: undefined },
message: …
Run Code Online (Sandbox Code Playgroud) 我确实按照这里的所有答案 ,没有任何对我有用......什么都没有.我在Windows 10上,使用chrome版本54.0.2840.99 m尝试在本地静态IP地址(10.1.1.1)上访问我的QNAP TS-453a https://10.1.1.1/cgi-bin/
我尝试使用导入的证书,自签名,导出和导入默认值等,没有任何作用
一些帮助真的很感激
从最新的 Chrome 60+ 开始,如果没有 SAN,它会在 HTTPS 页面上抛出 ERROR。OpenSSL 命令行不添加这些扩展。
ssl ×6
openssl ×5
apache ×1
certificate ×1
command-line ×1
dns ×1
graphql ×1
https ×1
node.js ×1
react-apollo ×1
reactjs ×1
self-signed ×1
wget ×1