SSL 証明書を作成する
この記事では Power BI ビジュアル用の Secure Sockets Layer (SSL) 証明書を生成してインストールする方法について説明します。
Windows、macOS X、Linux での各手順を実行するには、Power BI Visual Tools pbiviz
パッケージがインストールされている必要があります。 詳細については、「Power BI の視覚化の開発用に環境をセットアップする」を参照してください。
Windows で証明書を作成する
Windows 8 以降で PowerShell コマンドレット New-SelfSignedCertificate
を使用して証明書を作成するには、次のコマンドを実行します。
pbiviz --install-cert
Windows 7 の場合、pbiviz
ツールを使用するには、コマンド ラインから OpenSSL ユーティリティを使用できるようにする必要があります。 OpenSSL をインストールするには、OpenSSL または OpenSSL バイナリにアクセスします。
macOS で証明書を作成する
OpenSSL ユーティリティは通常、macOS X オペレーティング システムで使用できます。
また、次のコマンドのどちらかを実行して、OpenSSL ユーティリティをインストールすることができます。
Brew パッケージ マネージャーからの場合:
brew install openssl brew link openssl --force
MacPorts を使用する場合:
sudo port install openssl
OpenSSL ユーティリティをインストールしたら、次のコマンドを実行して新しい証明書を生成します。
pbiviz --install-cert
Linux で証明書を作成する
OpenSSL ユーティリティは通常、Linux オペレーティング システムで使用できます。
開始する前に、次のコマンドを実行して openssl
および certutil
がインストールされていることを確認してください。
which openssl
which certutil
openssl
と certutil
がインストールされていない場合は、openssl
および libnss3
ユーティリティをインストールします。
SSL 構成ファイルを作成する
次のテキストを含む /tmp/openssl.cnf という名前のファイルを作成します。
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[ alt_names ]
DNS.1=localhost
ルート証明機関を生成する
ローカル証明書に署名するためのルート証明機関 (CA) を生成するには、次のコマンドを実行します。
touch $HOME/.rnd
openssl req -x509 -nodes -new -sha256 -days 1024 -newkey rsa:2048 -keyout /tmp/local-root-ca.key -out /tmp/local-root-ca.pem -subj "/C=US/CN=Local Root CA/O=Local Root CA"
openssl x509 -outform pem -in /tmp/local-root-ca.pem -out /tmp/local-root-ca.crt
localhost の証明書を生成する
生成された CA および openssl.cnf を使用して localhost
の証明書を生成するには、次のコマンドを実行します。
PBIVIZ=`which pbiviz`
PBIVIZ=`dirname $PBIVIZ`
PBIVIZ="$PBIVIZ/../lib/node_modules/powerbi-visuals-tools/certs"
# Make sure that $PBIVIZ contains the correct certificate directory path. ls $PBIVIZ should list 'blank' file.
openssl req -new -nodes -newkey rsa:2048 -keyout $PBIVIZ/PowerBIVisualTest_private.key -out $PBIVIZ/PowerBIVisualTest.csr -subj "/C=US/O=PowerBI Visuals/CN=localhost"
openssl x509 -req -sha256 -days 1024 -in $PBIVIZ/PowerBIVisualTest.csr -CA /tmp/local-root-ca.pem -CAkey /tmp/local-root-ca.key -CAcreateserial -extfile /tmp/openssl.cnf -out $PBIVIZ/PowerBIVisualTest_public.crt
ルート証明書を追加する
Chrome ブラウザーのデータベースにルート証明書を追加するには、次のコマンドを実行します。
certutil -A -n "Local Root CA" -t "CT,C,C" -i /tmp/local-root-ca.pem -d sql:$HOME/.pki/nssdb
Mozilla Firefox ブラウザーのデータベースにルート証明書を追加するには、次のコマンドを実行します。
for certDB in $(find $HOME/.mozilla* -name "cert*.db")
do
certDir=$(dirname ${certDB});
certutil -A -n "Local Root CA" -t "CT,C,C" -i /tmp/local-root-ca.pem -d sql:${certDir}
done
システム全体のルート証明書を追加するには、次のコマンドを実行します。
sudo cp /tmp/local-root-ca.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
ルート証明書を削除する
ルート証明書を削除するには、次のコマンドを実行します。
sudo rm /usr/local/share/ca-certificates/local-root-ca.pem
sudo update-ca-certificates --fresh
証明書を手動で生成する
OpenSSL を使用して、手動で SSL 証明書を生成することもできます。 証明書を生成する任意のツールを指定できます。
OpenSSL ユーティリティが既にインストールされている場合は、次のコマンドを実行して新しい証明書を作成します。
openssl req -x509 -newkey rsa:4096 -keyout PowerBIVisualTest_private.key -out PowerBIVisualTest_public.crt -days 365
通常は、次のコマンドのどちらかを実行することで、PowerBI-visuals-tools
Web サーバー証明書を見つけることができます。
ツールのグローバル インスタンスの場合:
%appdata%\npm\node_modules\PowerBI-visuals-tools\certs
ツールのローカル インスタンスの場合:
<Power BI visual project root>\node_modules\PowerBI-visuals-tools\certs
PEM 形式
Privacy Enhanced Mail (PEM) 証明書形式を使用する場合は、証明書ファイルを PowerBIVisualTest_public.crt として保存し、秘密キーを PowerBIVisualTest_private.key として保存します。
PFX 形式
Personal Information Exchange (PFX) 証明書形式を使用する場合は、証明書ファイルを PowerBIVisualTest_public.pfx として保存します。
PFX 証明書ファイルにパスフレーズが必要な場合は、次のようにします。
構成ファイルで、次のように指定します。
\PowerBI-visuals-tools\config.json
server
セクションで、<YOUR PASSPHRASE> プレースホルダーをパスフレーズに置き換え、指定します。"server":{ "root":"webRoot", "assetsRoute":"/assets", "privateKey":"certs/PowerBIVisualTest_private.key", "certificate":"certs/PowerBIVisualTest_public.crt", "pfx":"certs/PowerBIVisualTest_public.pfx", "port":"8080", "passphrase":"<YOUR PASSPHRASE>" }