プロジェクト

全般

プロフィール

バグ #63

未完了

機能 #60: Redmine開発環境SSL設定とワイルドカード証明書導入

SSL証明書設定とブラウザ互換性の対応

Redmine Admin さんが3日前に追加. 約21時間前に更新.

ステータス:
フィードバック
優先度:
通常
担当者:
-
開始日:
2025-05-12
期日:
進捗率:

0%

予定工数:

説明

子課題3: SSL証明書設定とブラウザ互換性

📝 問題の詳細

  • Chrome: 「保護されていない通信」「接続がプライベートではありません」
  • Edge: 正常にアクセス可能

🔍 技術的分析

SSL証明書の設定

# 証明書の確認
openssl x509 -in /etc/letsencrypt/live/call2arm.com/cert.pem -text -noout | grep -A1 "Subject Alternative Name"
# 結果: DNS:*.call2arm.com, DNS:call2arm.com ✅

nginx設定の調整

# プロキシヘッダーの適切な設定
proxy_set_header Host $host:8443;
proxy_set_header X-Forwarded-Port 8443;
proxy_set_header X-Forwarded-Proto https;

🐛 発見された問題

1. ポート処理の不一致

  • Redmine内部でのURL生成時にポート情報が欠落
  • nginxのプロキシ設定でポート情報を適切に転送する必要

2. ブラウザ間の違い

  • Chrome: より厳密な証明書検証
  • Edge: 開発環境の証明書に対してより寛容

3. Mixed Contentの可能性

  • HTTPSページ内でHTTPリソースの読み込み
  • Content Security Policyの設定が必要

✅ 解決策

1. nginx設定の最適化

  • 適切なプロキシヘッダーの設定
  • HTTPからHTTPSへの正確なリダイレクト

2. Redmine設定の調整

# config/environments/production.rb
config.force_ssl = true

3. ブラウザ対応

  • Chrome: 証明書警告を手動で承認
  • Edge: デフォルトで動作
  • 解決策: 本番環境では信頼できるCA証明書を使用

📊 現在の状態

  • Edge: ✅ 完全に動作
  • Chrome: ⚠️ 証明書警告が必要
  • 証明書: ✅ Let's Encryptワイルドカード証明書適用済み

🔮 今後の改善点

  1. 本番環境: 信頼されたCA証明書の使用を検討
  2. 開発環境: 必要に応じてローカル証明書ストアへの追加
  3. 設定の標準化: 全ブラウザ対応のための設定最適化

他の形式にエクスポート: Atom PDF