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 を作成し、次の内容を記述してください。
- C = JP (2文字国名)
- ST = Kanagawa (都道府県)
- L = Yokohama (市区)
- O = Example Company (会社名・組織名)
- CN = teampage.example.jp (サーバー名)
[ 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 暗号化] を選択します。そして、その下に表示された [プライベートキーの編集はここをクリック] をクリックします。
注意: 初回時はパスワードの入力を求められますので、適当なパスワードを入力してください。

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

「プライベート キーのインポート」欄で次のファイルを指定し、[インポート] ボタンをクリックします。
- 証明書 (PEM 形式) ... server.crt
- プライベートキー (PKCS8 形式) ... server.p8

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

以上で TeamPage へのインポートは完了です。画面下部の [閉じる] ボタンをクリックして TLS マネージャー画面を閉じます。
HTTPS を有効にする
参照: DocJp113.020: HTTPS 設定 (HTTPS を有効にする)
セキュリティレベルの変更
サーバーセットアップ > ネットワーク > HTTP サーバー のページに戻り、[セキュリティ レベル] で [TLS 暗号化] が選択されていることを確認し、[適用] ボタンをクリックします。

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

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

変更後の URL で TeamPage にアクセスします。(ここでは https://teampage.example.jp:8080/
にアクセスします。ポート番号が 8080 であることにご注意ください。)
ブラウザーにセキュリティ警告が表示されますが、これは正常な動作です。
下図は Microsoft Edge のスクリーンショットです。[詳細設定] をクリックします。

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

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

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

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

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

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

このセキュリティ警告は、次のいずれかの方法で対処できます。
- クライアントの Windows に証明書を信頼させる。(ユーザー側の設定)
- 証明書に信頼のある認証局の署名を入れる。(サーバー側の設定)
1. の方法については、ブラウザーのセキュリティ警告を表示しないようにするには を参照してください。
2. の方法については、認証局の署名入りSSL証明書のインポート を参照してください。