我应该在nginx中使用哪些CER KEY文件?

2025-07-03 11:15:02 4
  • 收藏
  • 管理

    嗨,

    我已经使用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

    致以最良好的祝愿。

    上一页:我应该在我的Synology NAS上使用LetsEncrypt吗? 下一页:我应该主办我的挑战赛http或HTTPS,还是两者兼而有之?
    全部评论(0)