Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 签名证书与错误之间的混淆:-x509:由未知授权机构签名的证书_Ssl_Openssl_Ssl Certificate_Pem_Matrix Synapse - Fatal编程技术网

Ssl 签名证书与错误之间的混淆:-x509:由未知授权机构签名的证书

Ssl 签名证书与错误之间的混淆:-x509:由未知授权机构签名的证书,ssl,openssl,ssl-certificate,pem,matrix-synapse,Ssl,Openssl,Ssl Certificate,Pem,Matrix Synapse,所以我在matrix.org synapse homeserver上工作,并尝试联合 我得到了我的主服务器的证书。它里面有3个文件:chain.crt(二进制)、server.crt(非二进制)和server.key(非二进制) server.crt有begin证书,server.key有私钥。 我正在使用Nginx webserver反向代理我的主服务器,在Nginx的配置中,我将SSl证书指向server.crt,将SSl密钥指向server.key 我遇到的问题是,它显示了x509:由未知

所以我在matrix.org synapse homeserver上工作,并尝试联合

我得到了我的主服务器的证书。它里面有3个文件:chain.crt(二进制)、server.crt(非二进制)和server.key(非二进制)

server.crt有begin证书,server.key有私钥。 我正在使用Nginx webserver反向代理我的主服务器,在Nginx的配置中,我将SSl证书指向server.crt,将SSl密钥指向server.key

我遇到的问题是,它显示了x509:由未知权限签名的证书


我是否也需要在某些地方包括chain.crt(二进制文件)?

通常在TLS配置中包括中间证书是一种很好的做法。 但是证书通常应该正确验证,因为clienta通常在其存储中也有各种中间证书,并且可以通过这种方式构建链

您的证书是否由公共CA签署?Synapse需要这样的证书,因为有几个版本。默认证书可能是自签名的,除非您将内置的ACME客户端配置为从Let's Encrypt检索一个证书


检查它的一种方法是在浏览器中打开联合URL,查看它是否抛出验证错误。

nginx
希望服务器(叶)证书和链(中间)证书都是PEM格式(您称之为非二进制),但您称之为二进制的几乎肯定是许多软件所称的(这是X.509使用的ASN.1的特定二进制编码)

然后将
chain.pem
附加到
server.crt
的末尾;或者您可以一步一步地完成此操作

openssl x509 -in chain.binary -inform der >>server.crt
如果这不起作用,您的chain.crt可能是更奇怪的东西,比如binary/DER中的PKCS7/CMS。发布一个十六进制转储文件,或者在pastebin之类的地方提供确切的文件


如果您没有/获取OpenSSL,根据您的环境,还可以使用其他工具。请指定您的操作系统以及Java等任何主要工具。

证书由公共CA thawte签署。我没有使用内置的ACME,因为我从CA获得了证书。是chain.crt中间证书,如果是中间证书,那么如何将其包含在nginx web服务器中?只有浏览器的存储中有中间证书。几乎所有内容都是这样否则将需要正确的链证书被设置。它的工作现在。我使用whatsmychaincert.com网站获得链证书,并附上它。谢谢你和我Tulir@ShreyasPandey谢谢你推荐那个网站!我一直在设置我的矩阵服务器(构造而不是Synapse)好几天了。谢谢你的帮助dave!所以我用这个网站获得了链式证书,然后把它附加到server.crt的末尾,它成功了。就我所知,我只是怀疑linux会从下到上读取server.crt文件,所以这是否意味着server.crt以前的内容是中间的,我得到的链式证书是根证书iFate?如果否,那么哪个是根证书,哪个是中间证书或最终证书?“Linux”根本不读取证书文件;Linux和其他系统上的一些程序(如nginx)读取证书文件,但我不知道(任何地方)上面写着“从下到上”——这是从哪里来的?在将nginx交给OpenSSL之前,我必须先看看它是否进行了任何预处理,但如果首先使用server=leaf=End Entity,然后使用chain=intermediate,则最安全;您根本不需要root。(SSL/TLS服务器永远不需要发送根目录,因为客户端必须已经有了根目录,尽管有些服务器发送根目录是不必要的,因为它方便且允许。)
openssl x509 -in chain.binary -inform der >>server.crt