[解決済み] SSLエラー: ローカルの発行者証明書を取得できない
質問
Debian 6.0 32bitサーバでSSLを設定するのに苦労しています。SSLについては比較的初心者なので、どうかご容赦ください。できる限り多くの情報を含んでいます。
注:サーバーのアイデンティティと整合性を保護するために、真のドメイン名は変更されています。
設定方法
サーバーはnginxで動作しています。以下のように構成されています。
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
に記載されている方法で証明書をチェインしました。 ここで
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
ここで
mysite.ca.crt
は署名機関から渡された証明書で
bundle.crt
は、同じく署名機関から送られてきたCA証明書です。問題は、SSL証明書をGlobalSignから直接購入したのではなく、ホスティングプロバイダーのSinglehopを通して購入したことです。
テスト
SafariとChromeでは証明書が正しく検証されましたが、Firefoxでは検証されませんでした。最初に検索したところ、CAに問題がある可能性があることがわかりました。
の答えを探りました。 類似質問 しかし、それぞれの証明書がどのような目的で使用されているのかがよく分からないため、解決策を見出すことができませんでした。
opensslのs_clientを使って接続をテストしたところ、次のような同じ問題を示すと思われる出力が得られました。 似たような質問 . エラーの内容は以下の通りです。
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
opensslのレスポンスの詳細(証明書や不要な情報を切り捨てたもの)は、以下のとおりです。 こちら .
また、警告も表示されますね。
No client certificate CA names sent
これが問題である可能性はあるのでしょうか?どうすればnginxがこれらのCA名を送信することを確認できますか?
問題解決の試み
GlobalSignからルートCAを直接ダウンロードして問題を解決しようとしましたが、同じエラーが表示されました。DebianサーバーのルートCAを更新するために
update-ca-certificates
コマンドを実行しましたが、何も変わりませんでした。これは、プロバイダーから送られてきたCAが正しかったので、証明書が2回連鎖することになり、それが原因だと思われますが、どうにもなりません。
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
次のステップ
何か試せることがあるか、あるいは全体の設定が間違っているだけなのか、教えてください。
解決方法は?
jwwの言うとおりです。間違った中間証明書を参照しています。
SHA256証明書が発行されたので、SHA256中間体が必要です。こちらから入手できます。 http://secure2.alphassl.com/cacert/gsalphasha2g2r1.crt
関連
-
Linuxセキュリティの基礎
-
[解決済み] SSLエラー: ローカルの発行者証明書を取得できない
-
[解決済み] OpenSSLを使用して自己署名入りSSL証明書を生成する方法を教えてください。
-
[解決済み] JWT(JSONウェブトークン)の有効期限を自動的に延長する機能
-
[解決済み] HTTPS(HTTP + SSL)において、クエリストリングパラメーターは安全ですか? [重複している]。
-
[解決済み】自己署名証明書を持つWindowsでgitを使用して「unable to get local issuer certificate」を解決できない。
-
[解決済み】ファイアウォール越しにHTTPSでGitHubにアクセスしようとすると、SSL証明書が拒否される。
-
[解決済み】cURL エラー 60: SSL 証明書: ローカルの発行者証明書を取得できない
-
[解決済み】PHP - SSL証明書エラー: ローカルの発行者証明書を取得できない
-
[解決済み] ベストプラクティス。パスワードのソルティングとペパリング?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】攻撃者はinspect要素を有害に使用することができるか?
-
[解決済み] OpenSSL: Experian URL の最初の証明書を検証できません。
-
[解決済み] bcryptはどうして塩を内蔵しているのですか?
-
[解決済み] 認証と認可
-
[解決済み] ハッシュ化アルゴリズムと暗号化アルゴリズムの根本的な違い
-
[解決済み] プログラマーが知っておくべきセキュリティの知識とは?[クローズド]
-
[解決済み] HTTPS(HTTP + SSL)において、クエリストリングパラメーターは安全ですか? [重複している]。
-
[解決済み] ベストプラクティス。パスワードのソルティングとペパリング?
-
[解決済み] APIキーとシークレットキーはどのように機能するのですか?APIキーやシークレットキーを他のアプリケーションに渡すのは安全ですか?
-
[解決済み] JWTはlocalStorageとcookieのどちらに保存するべきか?重複