Title: OpenSSLによる秘密鍵や証明書を使ってHTTPSを有効にするには

TeamPage を HTTPS で運用するには、通信を暗号化するための SSL/TLS 秘密鍵(プレイベートキー)やサーバー証明書が必要です。多くの場合は、TeamPage に備わっている機能を使ってプライベートキーやサーバー証明書を作成しますが、OpenSSL などの別のツールで作成したものをインポートして使うこともできます。

ここでは、OpenSSL で作成したプライベートキーやサーバー証明書を TeamPage にインポートし、HTTPS 暗号化する手順を解説します。



Windows 環境では OpenSSL インストールが必要



OpenSSL は Windows 環境には標準でインストールされていないため、OpenSSL のダウンロードページ から OpenSSL のインストーラーをダウンロードし、インストールします。



パスの設定



OpenSSL をインストールしただけでは、インストール先フォルダにパスが通っていないため、openssl.exe を実行するにはフルパスでの指定が必要です。これでは面倒なので、次の手順でパスの設定を変更します。

Windows のスタートメニューの「ファイル名を指定して実行」に「SystemPropertiesAdvanced」と入力し、「システムのプロパティ」を開き、「環境変数」をクリックします。



「Path」の項目をダブルクリックして「環境変数名の編集」ダイアログを開き、「新規」をクリックして OpenSSL がインストールされたフォルダのサブフォルダ「bin」を指定します。(デフォルトで C:\Program Files\OpenSSL-Win64\bin です。)



設定ダイアログの「OK」をクリックしてすべて閉じます。

これで OpenSSL の実行ファイルへのパスが通りました。

OpenSSL を使う



設定ファイルを作成 (san.cnf)



OpenSSL はデフォルトで SAN を使わないため、SAN を指定する設定ファイルを作ります。

san.cnf を作成し、次の内容を記述してください。



[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt             = no
default_md         = sha256

[ req_distinguished_name ]
C  = JP
ST = Kanagawa
L  = Yokohama
O  = Example Company
CN = teampage.example.jp

[ req_ext ]
subjectAltName = @alt_names
basicConstraints = CA:TRUE
keyUsage = keyCertSign, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth

[ alt_names ]
DNS.1 = teampage.example.jp



秘密鍵(プレイベートキー)の作成



秘密鍵などのファイルはどこに設置しても構いませんが、ここでは C:\ssl にします。

PowerShell を管理者モードで起動し、C:\ssl を作成し、そのフォルダに移動します。

次のコマンドを実行して秘密鍵(プライベートキー)を作成します。ここでは、ファイル名を server.key、キーサイズを 2048bit としています。

openssl genrsa -out server.key 2048


下記は実行例です。

PS C:\ssl> openssl genrsa -des3 -out server.key 2048
Enter PEM pass phrase: (パスフレーズを入力)
Verifying - Enter PEM pass phrase: (パスフレーズを入力)


サーバー証明書の作成



次のコマンドを実行してサーバー証明書を作成します。ここでは、証明書のファイル名を server.crt、有効期間を 3650 日、署名アルゴリズムを SHA-2 としています。

openssl req -new -x509 -key server.key -out server.crt -days 3650 -sha256 -config san.cnf


下記は実行例です。

C:\ssl>openssl req -new -x509 -key server.key -out server.crt -days 3650 -sha256 -config san.cnf
Enter pass phrase for server.key:(プライベートキー作成時のパスフレーズを入力)


PKCS#8への変換



次のコマンドを実行し、プライベートキーの保存フォーマットを PKCS#8 形式に変換します。ここでは、作成されるファイル名を server.p8 としています。

openssl pkcs8 -topk8 -inform PEM -outform DER -nocrypt -in server.key -out server.p8


下記は実行例です。

C:\ssl>openssl pkcs8 -topk8 -inform PEM -outform DER -nocrypt -in server.key -out server.p8
Enter pass phrase for server.key: (プライベートキー作成時のパスフレーズを入力)


ファイルの確認



以上で san.cnf, server.key, server.p8, server.crt の 4 つのファイルが揃いました。

下記は、作成されたファイルを dir コマンドで確認した例です。

C:\ssl>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 1AC2-C357 です

 C:\ssl のディレクトリ

2025/06/05  14:42    <DIR>          .
2025/06/05  14:40               341 san.cnf
2025/06/05  14:42             1,302 server.crt
2025/06/02  16:54             1,892 server.key
2025/06/05  14:43             1,218 server.p8
               4 個のファイル               4,753 バイト
               1 個のディレクトリ  61,130,682,368 バイトの空き領域


TeamPage にインポートする



既存のキーストアのバックアップ



既に TeamPage でプライベート キーをを作成済みまたはインポート済みの場合、下図のように、TLS マネージャー画面の [証明書] 欄に既存の項目が表示されます。上記で作成したファイルをインポートする前に、既存の項目のバックアップを取ります。



TeamPage のプライベートキーやサーバー証明書は、server ディレクトリの下の settings/security フォルダに保存されています。この security フォルダをバックアップしてください。

参照: FAQ2282: SSLの秘密鍵やサーバー証明書はどこに保存されますか?



TeamPage へのインポート



上記で作成したプレイベートキーとサーバー証明書の対(ペア)を、TLS マネージャー でインポートします。

TLS マネージャーを表示するには、TeamPage にサーバーセットアップ > ネットワーク > HTTP サーバー を開き、[セキュリティ レベル] ドロップダウンリストで [TLS 暗号化] を選択します。そして、その下に表示された [プライベートキーの編集はここをクリック] をクリックします。

注意: 初回時はパスワードの入力を求められますので、適当なパスワードを入力してください。



プライベートキー(秘密鍵)の編集

既にプライベート キーがある場合はインポートできませんので、「証明書」欄で選択して [削除] をクリックして削除します。



「プライベート キーのインポート」欄で次のファイルを指定し、[インポート] ボタンをクリックします。





インポートに成功すると、「証明書」欄に証明書の Common Name (CN) が出現します。その証明書をクリックして選択し、「選択されたエントリー」に正しい証明書情報が表示されたことを確認します。



以上で TeamPage へのインポートは完了です。画面下部の [閉じる] ボタンをクリックして TLS マネージャー画面を閉じます。

HTTPS を有効にする



参照: DocJp113.020: HTTPS 設定 (HTTPS を有効にする)

セキュリティレベルの変更



サーバーセットアップ > ネットワーク > HTTP サーバー のページに戻り、[セキュリティ レベル] で [TLS 暗号化] が選択されていることを確認し、[適用] ボタンをクリックします。

セキュリティレベル

サーバーセットアップ > 一般 > サーバー管理 ページの [TeamPage の再起動] ボタンをクリックして、TeamPage を再起動させます。

TeamPage 再起動

TeamPage をアプリケーションとして起動している場合は、コンソール画面で起動状況を確認できます。サービスやデーモンとして起動している場合は、server ディレクトリの traction.out.txt で確認できます。



変更後の URL で TeamPage にアクセスします。(ここでは https://teampage.example.jp:8080/ にアクセスします。ポート番号が 8080 であることにご注意ください。)

ブラウザーにセキュリティ警告が表示されますが、これは正常な動作です。

下図は Microsoft Edge のスクリーンショットです。[詳細設定] をクリックします。



[〜に進む(安全ではありません)] をクリックすると TeamPage の画面が表示されます。



ポート番号の変更



サーバーセットアップ > ネットワーク > HTTPサーバー のページを開き、ポート番号を 443 に変更し、[適用] ボタンをクリックします。

ポート番号

サーバーセットアップ > 一般 > サーバー管理 ページの [TeamPage の再起動] ボタンをクリックして、TeamPage を再起動させます。

TeamPage 再起動

コンソール画面で traction.out.txt で再起動後の状況を確認します。ポート番号が 443 に変わったことを確認します。(HTTPS で標準で使用するポート番号は 443 なので、アクセス URL には「:443」は表示されません)



新しい URL でアクセスし、画面が表示されることを確認します。(ここでは https://teampage.example.jp/ にアクセスします。ポート番号 :443 を付ける必要はありません。)



以上で、TeamPage の HTTPS が有効になったことと、ブラウザーを使って HTTPS でアクセスできることが確認できました。

ブラウザーのセキュリティ警告



TeamPage の HTTPS が有効になったことを確認できたものの、アクセスすると、ブラウザーの画面やアドレス欄にセキュリティ警告が表示されます。

Microsoft Edge セキュリティ警告

このセキュリティ警告は、次のいずれかの方法で対処できます。

  1. クライアントの Windows に証明書を信頼させる。(ユーザー側の設定)
  2. 証明書に信頼のある認証局の署名を入れる。(サーバー側の設定)


1. の方法については、ブラウザーのセキュリティ警告を表示しないようにするには を参照してください。

2. の方法については、認証局の署名入りSSL証明書のインポート を参照してください。



Attachments:
security_level_tls.png
restart_teampage.png
chrome_https_successful.png
sse_security_level.png
sse_port.png
download_openssl.png
img06.png
img07.png
existing_item.png
backup.png
delete_existing.png
import_01.png
restart_1.png
restarted_01.png
warning_edge_1.png
warning_edge_2.png
restarted_02.png
confirm_https_443.png
security_warning_edge.png
detailed_info.png
関連記事
Article: DocJp1883 (permalink)
Categories: :FAQ:セキュリティ, :FAQ:HTTPS, :FAQ:暗号化, :DocJp:セキュリティ
Date: 2013/11/11; 4時11分32秒 JST

Author Name: TeamPage サポート
Author ID: jpbo