自己署名済みの SSL 証明書の作成方法

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  サーバーの構成 > SSL 暗号化のセットアップ >

自己署名済みの SSL 証明書の作成方法

プライベートのネットワーク上で作動するの FlowForce Server ために、自己署名済み SSL 証明書を作成する方法をこのデモは説明しています。このデモは内部で簡素化されており、生産の過程で使用されるには最適でない場合があります。所属機関には、特定のセキュリティポリシーに関連する SSL 証明書が存在し、下記以外の SSL ツールを使用する場合があります。信頼されている 証明書機関により署名される SSL 証明書を取得する情報に関しては、次を参照してください: 証明書機関により SSL 証明書を署名する方法

 

前提条件

このサンプルは OpenSSL ツールキット (https://www.openssl.org/) を使用して自己署名済み証明書を生成します。 OpenSSL は、オープンソースライブラリであり、特別のプラットフォームのためのバイナリアプリケーションではありません。 OpenSSL のためのコンパイルとインストール命令は、各オペレーションシステムで異なり、このドキュメントのスコープではありません。Linux と Mac マシン上で、 OpenSSL はすでに使用できる可能性があります。それ以外の場合、コマンドラインからインストールし、更新することができます。 OpenSSL が存在するか、下記のコマンドを入力して確認することができます (このコマンドにより現在の OpenSSL バージョンが表示されます):

 

openssl version

 

Windows では、公式の OpenSSL ソースコードからバイナリをコンパイル、または、Cygwin (https://cygwin.com/) などの OpenSSL を含むバイナリのディストリビューションをダウンロードします。

 

ルート証明書を作成する方法

1.このデモないで使用されるすべての証明書を補完するディレクトリを作成します (例、「C:\secure」)。これは、全ての OpenSSL コマンド(関連するファイルパス)のための作業ディレクトリです。 このため、コマンドラインからのディレクトリを変更します:

 

cd C:\secure

 

2.このデモのために、OpenSSL 拡張子を使用して証明書を作成します。これを可能にするには、OpenSSL ディストリビューションの openssl.cnf ファイルを検索し、前のステップで作成された作業ディレクトリにコピーします。
3.ルート秘密キーを作成します。安全な環境内で生成され保管するために、ルート秘密キーが公開キー構造の最も機密な部分であることに注意してください (このデモでは、「C:\secure」 内に保管されます )。

 

openssl genrsa -aes256 -out root.key 2048

 

プロンプトされると、ルートキーを保護するためにパスワードを入力します。 証明書 リクエストを署名するためにこのパスワードが後に必要になります。

 

4.ルート証明書を作成する方法。 下のコマンドは、上記で作成された秘密キーのために 3650 日間有効な自己署名済みの証明書を生成します。 -config パラメーターは、同じディレクトリ内の openssl.cnf ファイルを指していることを確認してください。 -extensions パラメーター は openssl.cnf 内で定義されている 「v3_ca」 拡張子 (セクション) を参照します。

 

openssl req -config openssl.cnf -extensions v3_ca -x509 -new -nodes -key root.key -sha256 -days 3650 -out root.pem

 

プロンプトされると、所属機関の情報を入力します。 例:

 

Country Name (2 letter code) [AU]: AT

State or Province Name (full name) [Some-State]: .

Locality Name (eg, city) []: Vienna

Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd

Organizational Unit Name (eg, section) []: IT

Common Name (eg, YOUR name) []: Demo CA

Email Address []: test@example.org

 

所属機関に適用することのできる必要とされるフィールドに記入します。フィールド 共通名 に自己署名済みの証明書機関 (このデモの場合、 「Demo CA」 ) を入力します。

 

FlowForce 証明書を作成する方法

(FlowForce Server、または FlowForce Web Server、または、両方) SSL 暗号化のために使用される実際の証明書を作成することができます。次の OpenSSL コマンドは秘密キーを作成します:

 

openssl genrsa -out flowforce.key 2048

 

メモ

秘密キーは PEM (Privacy Enhanced Mail) 書式である必要があります。PEM ファイルのファイル拡張子は、通常 .pem ですが、 .key、.cert、.cer、 または、 .crt であることもできます。
FlowForce 内で秘密キーを使用可能にするには、パスワードで保護される必要はありません。
秘密キーは安全に保管される必要があります。

 

作業中の openssl.cnf ファイルを開き、次のセクションを追加します:

 

[ server_cert ]
# Extensions for server certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName=DNS:server.my.domain.com

 

FlowForce Server が作動するマシンの FQDN (完全修飾ドメイン名)に対応するように subjectAltName (「Subject Alternative Name」) が変更されていることを確認してください。このサンプルで、 「server.my.domain.com」 に設定されています。サブジェクトの代替名は Google Chrome 58 または以降を必要とします。 それ以外の場合、自己署名済みの証明書はNET::ERR_CERT_COMMON_NAME_INVALID エラーを生成します (次を参照してください: https://support.google.com/chrome/a/answer/7391219?hl=en)。

 

証明書署名要求 (CSR) を下記のとおり作成します。-config パラメーターは以前に編集されている openssl.cnf ファイルを指しています。 -extension パラメーター は openssl.cnf 内で定義されている 「server_cert」 拡張子 を参照しています。

 

openssl req -config openssl.cnf -extensions server_cert -new -nodes -key flowforce.key -out flowforce.csr

 

プロンプトされると、機関に関する情報を入力します。例:

 

Country Name (2 letter code) [AU]: AT

State or Province Name (full name) [Some-State]: .

Locality Name (eg, city) []: Vienna

Organization Name (eg, company) [Internet Widgits Pty Ltd]: MyCompany Ltd

Organizational Unit Name (eg, section) []: IT

Common Name (eg, YOUR name) []: server.my.domain.com

Email Address []: test@example.org

 

メモ

フィールド 共有される名前 のために FlowForce Server が作動するホストマシンの FQDN (完全修飾ドメイン名) が入力されていることを確認してください。
プロンプトされると、チャレンジパスワードフィールドをそのままにしておいてください。

 

このデモのために、ルート証明書を使用して FlowForce 証明書を直接署名します。生産環境では、ルート証明書はサーバー証明書を直接署名しません。中間の証明書が代わりに使用されます。下のコマンドは前に作成されているルート証明書に対して flowforce.csr 証明書リクエストを署名し、 flowforce.crt ファイル (FlowForce Server で必要とされるサーバー証明書)を作成します:

 

openssl x509 -extfile openssl.cnf -extensions server_cert -req -in flowforce.csr -CA root.pem -CAkey root.key -CAcreateserial -out flowforce.crt -days 365 -sha256

 

概要

上記のステップに従うと、 次の証明書とキーを所有している必要があります:

 

root.key - 証明書機関 (CA) の秘密キーです。 このファイルを安全な場所に保管します。このキーが危害を受けると、ブラウザーにより信頼される証明書が使用者として生成できるようになります。
root.pem - これは証明書機関の公開証明書です。FlowForce に安全にアクセスする各マシン (または、ブラウザー)の信頼されている証明書にこの証明書をインストール (インポート) する必要があります。次を参照してください: ルート証明書のインポート.
flowforce.key - この秘密キーは FlowForce により使用される自己署名済みの証明書に伴います(次のアイテムを参照してください)。
flowforce.crt - これは FlowForce Server、FlowForce Web Server または、両方により使用される自己署名済みの証明書です。

 

FlowForce Server、FlowForce Web Server および HTTP 接続間のために SSL を以下のように有効化することができます:

 

FlowForce Web サーバーのために SSL を有効化する方法
FlowForce サーバーのために SSL を有効化する方法
FlowForce Web Server と FlowForce サーバー間に SSL を有効化する方法

(C) 2019 Altova GmbH