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

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

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



OpenSSL を使う



プレイベートキーの作成



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

openssl genrsa -des3 -out server.key 2048


下記は実行例です。

# openssl genrsa -des3 -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.....................+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for server.key: (パスフレーズを入力する)
Verifying - 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


下記は実行例です。

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


署名リクエストの作成



次のコマンドを実行して署名リクエスト (CSR = Certificate Signing Request) を作成します。ここでは、署名アルゴリズムが SHA-2、有効期間を 3650 日 (10 年間)、ファイル名を server.csr としています。

openssl req -new -sha256 -days 3650 -key server.key -out server.csr


実行中に組織情報の入力を求められます。間違いがないように注意してください。



注意: 多くの場合、「Common Name」は、完全修飾ドメイン名のような、DNS で設定された名前になります。例えば、TeamPage の URL が https://tp.tractionsoftware.jp/ の場合、「tp.tractionsoftware.jp」と入力します。:80、:8080、:443 などのポート番号は含めません。



下記は実行例です。

# openssl req -new -sha256 -days 3650 -key server.key -out server.csr
Enter pass phrase for server.key: (プライベートキー作成時のパスフレーズを入力)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kanagawa
Locality Name (eg, city) []:Yokohama
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Traction Software, Inc.
Organizational Unit Name (eg, section) []:TEST (任意)
Common Name (e.g. server FQDN or YOUR name) []:tp.tractionsoftware..jp
Email Address []:info@tractionsoftware.jp (任意)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (何も入力せずに Enter キーを押す)
An optional company name []: (何も入力せずに Enter キーを押す)


証明書の作成



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

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 -sha256


下記は実行例です。

# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 -sha256
Signature ok
subject=/C=JP/ST=Kanagawa/L=Yokohama/O=Traction Software, Inc./OU=TEST/CN=tp.tractionsoftware.e.jp/emailAddress=info@tractionsoftware.jp
Getting Private key
Enter pass phrase for server.key: (プライベートキー作成時のパスフレーズを入力)


ファイルの確認



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

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

# ls -l
合計 16 -rw-rw-r-- 1 root root 1452 8月 26 03:38 2016 server.crt
-rw-rw-r-- 1 root root 1131 8月 26 03:38 2016 server.csr
-rw-rw-r-- 1 root root 1743 8月 26 03:37 2016 server.key
-rw-rw-r-- 1 root root 1217 8月 26 03:37 2016 server.p8


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 で確認できます。

HTTPS で起動完了

HTTPS で TeamPage にアクセスし、画面が表示されることを確認します。

メモ: TeamPage へアクセスしたとき、ブラウザーの画面やアドレス欄に「このサイトは信頼できません」のようなセキュリティ警告が表示されます。この警告への対処方法については後述します。



HTTPSアクセス成功

以上で、TeamPage の HTTPS が有効になったことと、HTTPS でアクセスできることが確認できました。

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



TeamPage の HTTPS が有効になったことを確認できたものの、アクセス時に下図のようなセキュリティ警告が表示されます。下図は Internet Explorer 11 での例です。

IE11 HTTPS セキュリティ警告

また、上図のセキュリティ警告画面から先に進んでも、アドレス欄に赤い警告が表示されます。

IE11 HTTPS セキュリティ警告

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

  1. ブラウザーに証明書を信頼させる。(ブラウザー側の設定)
  2. 証明書に信頼のある認証局の署名を入れる。(TeamPage 側の設定)


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

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



Attachments:
backup_security_folder.png
security_level_tls.png
restart_teampage.png
TractionApplication_HTTP443.png
chrome_https_successful.png
tls_manager_delete_cert.png
tls_manager_import_01.png
tls_manager_import_02.png
tp_https_successful.png
ie11_tp_warning1.png
ie11_tp_warning2.png
sse_security_level.png
sse_port.png
関連記事
Article: DocJp1883 (permalink)
Categories: :FAQ:セキュリティ, :FAQ:HTTPS, :FAQ:暗号化, :DocJp:セキュリティ
Date: 2013/11/11; 4時11分32秒 JST

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