はじめに
本書の目的
本ドキュメントはSSLのルート証明書を安全にインストールし、運用する手順を分かりやすく解説します。初心者でも実務で使えるよう、図や専門用語の省略、具体例を交えて説明します。
誰に向けた内容か
社内のサーバー管理者、開発者、あるいは社内端末で独自の証明書を使いたいIT担当者向けです。証明書の概念に不安がある方にも対応できるよう平易に書いています。
本書で扱う範囲
第2章でルート証明書の役割、第3章でWindowsでのインストール手順、第4章で主要ブラウザへの導入方法、第5章でサーバー側の証明書設定を扱います。具体例として社内向けの自己署名ルートの導入ケースを説明します。
前提と準備
管理者権限が必要です。証明書ファイル(.crtや.der)と配布用の手順書を用意してください。秘密鍵は絶対に共有しないでください。操作前にバックアップを取り、手順を一つずつ確かめながら進めてください。
ルート証明書とは
定義
ルート証明書は、SSL/TLS通信で使う「信頼の元」です。ウェブサイトの証明書が信頼できるかを判断するための最上位の証明書で、OSやブラウザに標準で入っていることが多いです。たとえば、銀行サイトの安全性を確認する基準がルート証明書です。
なぜ重要か
ルート証明書がなければ、ブラウザは中間やサイトの証明書を信頼できません。結果として「接続は安全ではありません」という警告が出ます。つまり、安全な通信を成立させる土台になります。
信頼チェーンの仕組み(簡単な例)
- ルート証明書(信頼の源)
- 中間証明書(ルートから署名)
- サイト証明書(中間から署名)
ブラウザはこの順に検証し、最後まで問題なければサイトを安全と判断します。
追加でインストールが必要な場面
- 社内の独自認証局(自社CA)を使うとき
- 古い機器や特殊なソフトが標準ルートを持たないとき
この場合はルート証明書を手動で導入します。
注意点
ルートは非常に強い権限を持つため、入手元を必ず確認してください。信頼できないルートを追加すると、通信の安全が損なわれるリスクがあります。導入時は管理者や運用ルールに従ってください。
Windows環境でのインストール方法
前準備
- 用意するもの:ルート証明書ファイル(.cer/.crt および場合によっては .pfx)。
- インストール先を確認:個人用(Current User)かコンピューター全体(Local Machine)かを決めます。全体に入れる場合は管理者権限が必要です。
手順(GUI操作)
- 「スタート」→「ファイル名を指定して実行」を開き、証明書管理を起動します。
- 現在のユーザー:certmgr.msc
- コンピューター全体:certlm.msc(管理者で実行)
- 左側のツリーで「信頼されたルート証明機関」→「証明書」を選びます。目的に合わせて他のストアも選べます。
- 右クリック→「すべてのタスク」→「インポート」を選び、ウィザードに従ってファイルを指定します。
- .pfx を使う場合は秘密鍵のパスワード入力や「秘密鍵をエクスポート可能にする」の設定があります。通常のルートは .cer/.crt です。
- ストアの選択で「信頼されたルート証明機関」を選び、完了を押します。
確認と注意点
- インポート後、証明書をダブルクリックして発行者名や有効期限を確認してください。
- 「アクセスが拒否されました」などのエラーが出たら、管理者として実行して再試行してください。
- 削除する場合は該当証明書を右クリックして「削除」を選びます。
トラブルシューティングの例
- “秘密キーがありません”:.pfx にパスワードが必要です。; “.cer をインポートしたが信頼されない”:正しいストア(信頼されたルート)に入っているか確認してください。
ブラウザへのインストール方法
前提
証明書ファイルは .crt/.cer/.pem(公開鍵)や .p12/.pfx(秘密鍵含む)などがあります。p12はインポート時にパスワードが必要になります。ブラウザによっては独自の証明書ストアを使うため、手順が異なります。
Firefox の手順
- メニューから「設定」→「プライバシーとセキュリティ」を開きます。
- 下へスクロールし「証明書」欄の「証明書を表示」をクリックします。
- 「認証局証明書」タブで「インポート」を選び、対象ファイルを指定します。
- 表示される信頼設定で「この証明書をウェブサイトの識別に使用する」を選択して OK を押します。
- ブラウザを再起動して反映を確認します。
Chrome / Edge(Windows)の手順
Chrome と Edge は OS の証明書ストアを使います。Windows では「ファイル名を指定して実行」で certmgr.msc を使うか、コントロールパネルの「インターネットオプション」→「コンテンツ」→「証明書」から「信頼されたルート証明機関」にインポートします。管理者権限が必要になる場合があります。
macOS の手順
Keychain Access(キーチェーンアクセス)を開き、System(またはログイン)キー チェーンに証明書をドラッグします。追加後に証明書をダブルクリックし「常に信頼」に設定して鍵のパスワードを入力します。
確認方法
各ブラウザや OS の証明書一覧で認証局名が表示されているか確認してください。サイトにアクセスして警告が出なければ正常に導入されています。
注意点
信頼するルート証明書は慎重に扱ってください。社内で多数の端末に配布する場合はグループポリシーや構成プロファイルで一括配布する方が安全で効率的です。
サーバーでの証明書構成
概要
サーバーに入れる証明書は通常、サーバー証明書・中間CA・ルート証明書の3点です。別々のファイルで来るか、PKCS#7(.p7b)やPFXでまとめて来ます。
基本のファイル構成(例)
- server.crt:サーバー証明書
- server.key:秘密鍵
- chain.crt:中間+ルート(順序は中間→ルート)
Apacheの例(httpd/ssl.conf)
- SSLCertificateFile /etc/ssl/server.crt
- SSLCertificateKeyFile /etc/ssl/server.key
- SSLCertificateChainFile /etc/ssl/chain.crt
最近の設定では server.crt に chain を結合した fullchain.pem を使うことが多いです(fullchain = server.crt + chain.crt)。
Nginxの例
- ssl_certificate /etc/ssl/fullchain.pem
- ssl_certificate_key /etc/ssl/server.key
Nginx はチェーンを1ファイルにまとめた fullchain を期待します。
Windows(IIS)の場合
PFX(.pfx/.p12)を作成してインポートすると簡単です。MMCの証明書スナップインで「個人」ストアにインポートし、必要なら中間CAを「中間証明機関」へ入れます。
PFX作成例(OpenSSL)
– openssl pkcs12 -export -out cert.pfx -inkey server.key -in server.crt -certfile chain.crt
鍵の権限と再起動
秘密鍵はrootやサービスユーザーだけが読めるようにします(例:chmod 600)。設定変更後はサービスを再起動してください。
動作確認
- openssl s_client -connect example.com:443 -showcerts
- ブラウザで接続、または外部の検査ツール(SSL Labs等)を使います。
よくあるトラブル
- 中間証明書が抜けている(チェーン不完全)→ブラウザ警告
- 鍵と証明書のペア不一致→接続失敗
- 鍵ファイルの権限が緩すぎる→サーバーが読み込まない
以上を守れば、ほとんどの環境で正しく証明書を構成できます。












