操作
バグ #63
未完了機能 #60: Redmine開発環境SSL設定とワイルドカード証明書導入
SSL証明書設定とブラウザ互換性の対応
ステータス:
フィードバック
優先度:
通常
担当者:
-
開始日:
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ワイルドカード証明書適用済み
🔮 今後の改善点¶
- 本番環境: 信頼されたCA証明書の使用を検討
- 開発環境: 必要に応じてローカル証明書ストアへの追加
- 設定の標準化: 全ブラウザ対応のための設定最適化
操作