- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我没有想法,我需要帮助!
我使用 Openssl 创建我的 SSL:
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout key.pem -out cert.pem -days 3650
cert.pem 看起来像这样:
-----BEGIN CERTIFICATE-----
cert
-----END CERTIFICATE-----
key.pem 看起来像这样:
-----BEGIN PRIVATE KEY-----
key
-----END PRIVATE KEY-----
在 docker-compose 中,我将证书/ key 发送到 etc/nginx/ssl/...
volumes:
- ./sites:/etc/nginx/conf.d
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./ssl/cert.pem:/etc/nginx/ssl/cert.pem
- ./ssl/key.pem:/etc/nginx/ssl/key.pem
在 nginx 中我是这样添加的:
listen 443 ssl;
server_name localhost;
ssl_certificate ssl/cert.pem;
ssl_certificate_key ssl/key.pem;
当我启动 docker-compose 时,我在 nginx 中遇到这个错误:
web_1 | 2018/08/17 16:38:47 [emerg] 1#1: PEM_read_bio_X509_AUX("/etc/nginx/ssl/cert.pem") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
web_1 | nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/ssl/cert.pem") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
我已经为此工作好几天了,但我不确定为什么会不断收到此错误。我试过将它设为 crt/key 而不是 .pem,但我得到了同样的错误。如果我只是一起删除 ssl,服务器工作正常,但我非常需要 SSL。请帮忙!
最佳答案
“普通”证书一旦在 PEM 中编码,将如下所示:
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
(...
是DER
结构的Base64编码)
这通常是任何启用 TLS 的应用程序在想要向远程端显示其身份时所需要的(带有关联的 key ,通常在单独的文件中)。
作为旁注,由于它似乎是流行的(错误的)信念,文件名本身(包括扩展名)对内容的工作(或不工作)状态没有明确的影响。您可以将文件命名为 foobar.42
和 buzz.666
,如果它们的内容有效,它们也可以正常工作……当然,人工维护会更难,因此约定经常使用.crt
作为证书(或.cert
用于非基于DOS的受限环境)和.key
用于 key 文件,通常使用网站名称(对于网站)或其中的一部分作为名称,例如 example.com.crt
。但同样,这些只是一组可能的约定,任何需要这些文件的程序都不关心名称,只关心内容。有些人也在使用 .pem
扩展名。
参见 https://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions对于以上所有内容,它对选项进行了很好的讨论/介绍。
现在在您的情况下,错误消息告诉您它希望有这样的内容:
-----BEGIN TRUSTED CERTIFICATE-----
...
-----END TRUSTED CERTIFICATE-----
唯一的区别是添加了 TRUSTED
关键字。但是为什么会发生,什么时候发生?
证书由一个“证书颁发机构”通过一个或多个中间人签署。这构建了一条直至根证书的信任链,其中颁发者等于主体,该证书自行签名。
您自己生成了证书,因此这是一个“自签名”证书,在技术上与 CA 证书没有区别,除了默认情况下没有系统(包括您自己的系统)会在没有特定配置的情况下信任此类证书。
这基本上就是错误消息告诉您的内容:应用程序说它正在根据您的配置加载证书,但它无法验证(因为它是自签名的),同时您没有明确地将其配置为信任
这可能因应用程序或其版本而异,因为指南位于 https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04与您做的事情基本相同,并且可以正常工作,但不显示证书的内容。
在您的 openssl
调用中,如果您添加 -trustout
,它将生成 BEGIN TRUSTED CERTIFICATE
而不是 BEGIN CERTIFICATE
。这也可能默认发生,具体取决于系统上 openssl 的安装/配置方式。相反,您有 -clrtrust
。请参阅位于 https://www.openssl.org/docs/man1.1.0/apps/x509.html 的 openssl
x509
命令的“信任设置”部分
关于ssl - nginx SSL 无起始行 : expecting: TRUSTED CERTIFICATE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899844/
我在尝试生成具有“价格”轴和“量”轴的图表时遇到问题,类似于 example given 中的图表。在 Highstock 网站上。它可以很好地显示成交量轴,但不能显示价格。 在尝试确定问题的原因时,
起始 - HTML
在我的 HTML 项目中,我试图提及 标签。但是,VS Code 将其解释为实际的 标签,它会导致奇怪的事情发生。有人有办法解决这个问题吗?预先感谢您! 最佳答案 使用<代替 . 顺便说一下,使
起始 - HTML
在我的 HTML 项目中,我试图提及 标签。但是,VS Code 将其解释为实际的 标签,它会导致奇怪的事情发生。有人有办法解决这个问题吗?预先感谢您! 最佳答案 使用<代替 . 顺便说一下,使
The allocation function attempts to allocate the requested amount of storage. If it is successful, i
这是我的Program.cs: public static void Main(string[] args) { var host = new WebHostBuilder()
我希望我的应用程序独立于操作系统。因此,我的 config.properties 和日志文件存储在资源文件夹中,我通过相对路径获取这些资源。这是我的项目结构。 这是我的 AppConfig 类: pu
(前言:这是我在 Stack Overflow 上提出的第一个与音频相关的问题,因此我会尽力用最好的措辞来表达。欢迎编辑。) 我正在创建一个允许用户循环播放音乐的应用程序。目前,我们的原型(proto
我有一个 Pandas DataFrame,我想将其用作 Scrapy Start URL,函数 get_links 打开一个到 DataFrame 的 xlsx,其中有一个我想在其上运行蜘蛛的 Co
我有几个大的 DTD 文件。我用过 trang将它们转换为 XSD 文件,这样我就可以轻松地从 JAXB 和其他实用程序中使用它。但是,生成的 XSD 文件的所有声明元素都位于顶层。这意味着任何元素都
是否有任何工具可以将文件从给定的起始偏移量复制到给定的(结束)偏移量。我还想通过运行 md5sum 确认该工具已正确复制指定的字节。像这样的东西 1) Copy source file star
所以,我有一个程序,我可以使用 Path2D 对象将形状添加到 JPanel,然后我可以单击并拖动它们。我想要做的是能够找到药物后形状的最终 X 和 Y 坐标。坐标必须是左上角坐标。有什么想法吗? /
我是一名优秀的程序员,十分优秀!