嗨,
我已经使用GetSSL获得了证书。
但我实际上有5个文件:
DOMAIN_CERT_LOCATION=“moto.Coures.crt”
DOMAIN_KEY_LOCATION=“moto.Course.key”
CA_CERT_LOCATION=“chain.crt”
DOMAIN_CHAIN_LOCATION=“domain.crt”
DOMAIN_PEM_LOCATION=“domain.pem”
和…我到底应该在nginx配置中使用什么?
我的所有猜测在浏览器中都以Net::ERR_CONNECTION_REJECTED结束。
我目前正在使用下一个配置:
上游摩托赛道{
服务器127.0.0.1:3004;
}
服务器{
听*:80;
听[::]:80;
SERVER_NAME MOTO.URCES;
Proxy_Set_Header主机moto.Courses;
位置/{
}
}
服务器{
监听443 SSL1;
监听[::]:443 SSL;
SSLON;
Ssl证书路径/moto.Coures.crt;
SSLCERTIFICATE_KEY路径/moto.Coures.key;
继续前进;
GZIP_MIN_LENGTH 1000
Gzip_proxed过期无缓存无存储私有身份验证;
GZIP_TYES文本/css文本/html应用程序/json;
ERROR_LOG PATH/moto.Coures.error.log;#p
ACCESS_LOG路径/moto.Course.acces.log;#p
SERVER_NAME MOTO.CURLES www.moto.Courses;
添加报头严格-传输-安全最大年龄=500;
位置/{
代理传递http://motocourses;
代理重定向关闭;
Proxy_Set_Header主机$host;
Proxy_Set_Header X-Real-IP$Remote_Addr;
Proxy_Set_Header X-Forwarded-For$Proxy_Add_x_Forwarded_For;
Proxy_Set_Header X-Forwarded-Proto HTTPS;
}
},由Sahsanu在帖子5中解决
嗨@SilentImp,
Nginx指令SSLCERTIFICATE的正确文件是在DOMAIN_CHAIN_LOCATION变量中定义的文件,在您的例子中是domain.crt,这就是我们所说的fullchain。
您知道您是针对临时服务器而不是生产服务器颁发证书的吗?我是说,你的证书是ISSU…,密钥很简单--它应该是moto.Coures.key。Ngix希望在同一个文件中看到中间证书(S)和服务器证书,并且您从getsl发布的输出根本不清楚是哪个文件,但我的猜测是domain.pem,或者可能是domain.crt.,ssl_certify moto.Course.key;
SSL_CERTIFICATE_KEY chain.crt;
Root@li350-157:/WebSites/nginx/conf#nginx-t
Nginx:[warn]/WebSites/nginx/conf/moto.Coures.conf中的重复MIME类型“Text/html”:27
Ngix:[Emerg]SSL_CTX_use_PrivateKey_file(“moto.courses.key”)失败(ssl:错误:0B080074:x509证书例程:X509_CHECK_PRIVATE_KEY:密钥值不匹配)
Nginx:配置文件/WebSites/nginx/nginx.conf测试失败
SSLCERTIFICATE moto.Course.key;
SSL_CERTIFICATE_KEY DOMAIN.crt;
传递nginx-t,但在浏览器中,我仍然在Gecko中获得SEC_ERROR_UNKNOWN_ISHEMER,并在眨眼之间获得Net::ERR_CERT_AUTHORITY_INVALID。
SSLCERTIFICATE moto.Course.key;
SSL_CERTIFICATE_KEY DOMAIN.pem;
我也是。(我不维护GetSSL,但我阅读了文档并了解了PKI)
对于ngix,我的理解是
SSLCERTIFICATE_KEY moto.Coures.key
Ssl_证书域.crt
Hi@SilentImp,我想你可能已经把钥匙和证书翻过来了,可能是因为你没有考虑你正在输入的内容,
SilentImp:
但我实际上有5个文件:
DOMAIN_CERT_LOCATION=“moto.Coures.crt”
DOMAIN_KEY_LOCATION=“moto.Course.key”
CA_CERT_LOCATION=“chain.crt”
DOMAIN_CHAIN_LOCATION=“domain.crt”
DOMAIN_PEM_LOCATION=“domain.pem”
和…我到底应该在nginx配置中使用什么?
Nginx指令SSLCERTIFICATE的正确文件是在DOMAIN_CHAIN_LOCATION变量中定义的文件,在您的例子中是domain.crt,这就是我们所说的fullchain。
SilentImp:
传递nginx-t,但在浏览器中,我仍然在Gecko中获得SEC_ERROR_UNKNOWN_ISHEMER,并在眨眼之间获得Net::ERR_CERT_AUTHORITY_INVALID。
您知道您是针对临时服务器而不是生产服务器颁发证书的吗?我的意思是,你的证书是由伪造的LE Intermediate X1颁发的,这是一个测试CA,并且是无效的。您应该更改getssl配置文件。
现在你应该有这个:
#暂存服务器最适合测试(因此设置为默认)
#此服务器颁发完整证书,但有速率限制
并且您应该将其更改为使用PROD而不是暂存并重新颁发您的证书
#临时服务器最适合测试(因此设置为默认)
#此服务器颁发完整证书,但有速率限制
干杯,
sahsanu,嗨,谢谢你指出这一点。
我尝试过
ssl_certification_key moto.courses.key
ssl_certification domain.crt
致以最良好的祝愿。