gpt4 book ai didi

ssl - NGINX HTTPS 服务器在 .crt 和 .key 文件上 barfing

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:19 25 4
gpt4 key购买 nike

问题:

nginx 想要格式化其 .pem/.crt 和 .key 文件的方式有什么特别之处吗?我无法让 nginx 运行...它总是提示证书/ key 文件。

问:

有人想与我分享他们的 .pem/crt 和 .key 文件在(非生产)系统上运行良好的(已清理)副本吗?或者以其他方式告诉我我做错了什么(见下文)

错误:

将 nginx.conf 配置为指向 ssltest.cuddletech.com.crt 并将 .crt(和 key )文件存放在/nginx/servers 中...然后运行 ​​nginx 启动服务器,出现以下错误:

nginx: [emerg] unexpected end of file, expecting ";" or "}" in /usr/local/etc/nginx/servers/ssltest.cuddletech.com.crt:63

疑难解答:`

如果我进去并在文件末尾放一个 ;(紧接在第二个 之后)
-----END CERTIFICATE-----;
(它是一个包含叶子和中间 ca 的包)。现在,它不再提示意外的结局,而是提示:

 nginx: [emerg] unknown directive "-----BEGIN" in /usr/local/etc/nginx/servers/ssltest.cuddletech.com.crt:62

如果我然后进入并删除 -----BEGIN 部​​分,它会继续提示未知指令......这次从编码证书的前几个字符开始。

有趣的是,如果我将文件类型更改为 .pem(将 ; 保留在末尾,并更新 nginx.conf 以查找 .pem)。现在,它根本不提示证书文件,而是开始以同样的方式提示 KEY 文件:

$ nginx: [emerg] unexpected end of file, expecting ";" or "}" in /usr/local/etc/nginx/servers/ssltest.cuddletech.com.key:28

; 放在 .key 文件的末尾会使 nginx 报错:

nginx: [emerg] unknown directive "-----BEGIN" in /usr/local/etc/nginx/servers/ssltest.cuddletech.com.key:27

同样有趣的是,它两次都提示 -----BEGIN 它表示文件末尾的行号,而不是开头。

我如何生成证书和 key 文件:

我使用 Hashicorp 的 Vault PKI 后端 ( per this howto ) 生成了证书

我将叶证书和中间证书剪切并粘贴到一个文件中,将私钥剪切并粘贴到另一个文件中。

它们看起来像这样:

证书包:

-----BEGIN CERTIFICATE-----
MIIE/DCCAuSgAwIBAgIUIKX6kkLIidtRvnx0nafFH9SunaIwDQYJKoZIhvc
NAQELBQAwKTEnMCGA1UEAxMeQ3VkZGxldGVjaCBPcHMgSW50ZXJtZWRpYXRlIENBMB4X
DTE3MDkwOTAwMTgxNVoXDTE3MTAwOTAwMTg0NVowITEfMB0GA1UEAxMWc3NsdGVz
....
NW9I2ThBDp0uo7LcIO7hmHhNun6apGSlgf6Gj1L63dp
Fe+hoQpCNOGfoc2P+4uJZenqiax5dFqskiBVkQ7uyVFxf5ydF5pjzwF/QFFcKKok
SkRjCJmrVxD/7V6H8u+hSRJuXGXNIIuhhUmYhWoNZpnZEUyDPOuMWHjxq7ZfPHlO
A039BhLFI0msEBfk+DunhYA+xyBIhK0Lq3pqcc7zH9A=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFpTCCA42gAwIBAgIUbXR6po8/oWmxgTVYuhxHDAM1prUwDQYJKoZIhvcNAQEL
BQAwHTEbMBkGA1UEAxMSQ3VkZGxldGVjaCBSb290IENBMB4XDTE3MDkwODIyNTI0
OFoXDTE4MDkwODIyNTMxOFowKTEnMCUGA1UEAxMeQ3VkZGxldGVjaCBPcHMgSW50
.....
ZXJtZWRpYXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwuTe
h9gpV4RcibYNOptsDJHomUZaEkRs3ppGt1asnM5os7L17ExFS8PLSY0SbhB75Vo1
TLlgH2MkDGHbw5bcgY0fYXvKqk1y6JjLFBnmiGHe8mHt9XaWkbnwP/E7CttGr2GC
SaT7RxDN2pHXceTnmLOiz0Dk1ZpssldMVD1MQeSQspuBp9s2sWfXtkrLluPLOZH0
C1WXl+H/7giQggXPmMVLhnxPaaAwU0DNX0IZjzE1fqazBbrx36n7baVdUgRczkD2
Xiht8pnAdbUFdp8byeupDkPJ2vLyMLocvSO6z1m4+drXlgFPBLSgKXGvnw5A8b+S
dqKRe55MBNxpws0E4OjMVwVXlMctcLCogmx6jFYjWSJUQgKLHCi2JVWW6ajlKOfV
Gn/opA11kWKb
-----END CERTIFICATE-----

私钥文件:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyWnbF5T5vIlrcVHG82S+u/GESnlhAiX6maUYmpQMVOGsmjWr
XOKFGQbFW796FgENrt1PzXlYT8/aKyT215KomxkC4bWV0daobC5p+fzusVyV51Si
.....
smzFwxewOYa4FU3KGgRlscBooaRumwpXid3IPwfsBzOCdNQ8zXyaqSZeStewxUBq
ZtMEDpD3q7noZQU85cQs4SlbOOscXEUMUaeKQDhC2FWW9qlM5NKU
-----END RSA PRIVATE KEY-----

nginx.conf 的 HTTPS 服务器部分

# HTTPS server
#
server {
listen 443 ssl;
server_name ssltest.cuddletech.com;

ssl_certificate /usr/local/etc/nginx/servers/ssltest.cuddletech.com.pem;
ssl_certificate_key /usr/local/etc/nginx/servers/ssltest.cuddletech.com.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

location / {
root /user/share/nginx/html;
index index.html index.htm;
}
}
include servers/*;
}

我的设置:

Mac OS X 10.12.6nginx版本:nginx/1.12.1 由 clang 8.1.0 (clang-802.0.42) 构建 使用 OpenSSL 1.1.0f 构建 2017 年 5 月 25 日 启用 TLS SNI 支持

TIA 的任何建议!!!

最佳答案

您的问题出在 include servers/*; 语句中。您将服务器目录中的所有内容作为配置包括在内。所以证书也作为配置加载

要么改成

include servers/*.conf;

如果您没有包含任何配置,则将其删除

关于ssl - NGINX HTTPS 服务器在 .crt 和 .key 文件上 barfing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com