Webサイトにssl(https)を追加する必要があります。SSL.CSRとSSL.KEYファイルが与えられました。 (末尾に^ Mがあるため)それらを「dos2unix」し、サーバーにコピーしました(CSR-> mywebsite.crt、KEY-> mywebsite.key)。 nginx.confに次の変更を加えました。
@@ -60,8 +60,13 @@
}
server {
- listen 80;
+ listen 443;
server_name ...;
+ ssl on;
+ ssl_certificate mywebsite.crt;
+ ssl_certificate_key mywebsite.key;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 10m;
# Set the max size for file uploads to 500Mb
client_max_body_size 500M;
Nginxを再起動するとエラーが発生します:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
Mywebsite.crtファイルの最初の行に「REQUEST」が含まれているため、最初と最後の行から「REQUEST」を削除し、nginxを再起動して別のエラーを検出したためだと考えています。
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=algorithm, Type=X509_ALGOR error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=signature, Type=X509_CINF error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:Field=cert_info, Type=X509 error:0906700D:PEM routines:PEM_ASN1_read_bio:ASN1 lib)
何か案が?
秘密鍵は決して共有しないでください。ここに投稿したキーが危険にさらされていることを考慮し、新しいキーと署名要求を生成する必要があります。
実際に署名された証明書ではなく、証明書要求があります。署名者にリクエスト(「CSR」)を提供します。彼らはそのリクエストを使用して、署名済み証明書(「CRT」)を作成し、それを利用可能にします。キーは誰にも開示されません。
参考までに、次のように呼び出すだけでキーを検証できます。
openssl x509 -noout -text -in your.crt
openssl rsa -noout -text -in your.key
私の場合、このエラーはかなり微妙であることが判明しました。BEGINブロックは5ではなく4つのダッシュで始まりました。 ----
vs -----
。残念ながら、検証ツールのエラーメッセージはあまり具体的ではありません。
SSLをオンラインで検索中にこの問題に遭遇しました:error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting:TRUSTED CERTIFICATE
実行後にこのエラーが発生しました:
nginx -t
私が抱えていた問題は、cert.pemとcert.keyが欠落していたことでした
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
gitlab.rb
ファイルで証明書を誤って設定しました。簡単なエラーを実現するのに時間がかかりました。
nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.crt"
nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.key"
代わりに
nginx['ssl_certificate'] = "/etc/gitlab/ssl/self-ssl.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/self-ssl.key"
NGINXサイト の手順は、公開証明書と中間証明書を組み合わせるためにcat
を使用して2つのファイルを組み合わせます。ただし、公開証明書ファイルが新しい行で終わっていない場合、-----BEGIN CERTIFICATE-----
の中間に中間証明書の行が追加されます-----END CERTIFICATE-----
パブリック証明書の行。無効なチェーン証明書ファイルにつながります。これらの2行を手動で分離すると、問題を修正できます。