tencent cloud

Tencent Cloud EdgeOne

OpenSSLを使用した自己署名証明書の生成

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-10-15 17:29:14
AI翻訳
すべてのサーバー証明書とクライアント証明書は、通常、信頼できるCA認証局に申請する必要があります。これは、さまざまなオペレーティングシステムやブラウザーに信頼されるようにするためです。CA機関は通常、一定の証明書費用を請求します。現在、HTTPS証明書がテスト用または社内利用のみに必要な場合は、OpenSSLを使用して自己署名証明書を発行することもできます。参考手順は以下の通りです:
RSAアルゴリズム証明書
ECCアルゴリズム証明書

ステップ1:ルート証明書を生成する

1. 以下のコマンドでルート証明書の秘密鍵を作成します。4096ビットの鍵長のRSA証明書を生成する場合を例に、生成した秘密鍵をca-rsa.keyファイルとして保存します。
openssl genrsa -out ca-rsa.key 4096
2. 上記の証明書秘密鍵を使用して証明書署名要求ファイル(CSR)を生成し、ca-rsa.csrとして保存します。以下のコマンドでは、-subjで証明書の基本情報を指定しています。その内容は以下の通りです:
C=CNは国を表します。
ST=Stateは省を表します。
L=Cityは都市を表します。
O= Example Orgは組織を表します。
OU=Example CAは部門を表します。
CN=Example Root CAはその証明書の一般名を表します。CA証明書では、このフィールドでCAの用途を説明できます。ドメイン名証明書の場合は、このフィールドで証明書が発行されるドメイン名を指定する必要があります。
openssl req -new -key ca-rsa.key -out ca-rsa.csr -subj "/C=US/ST=State/L=City/O=Example Org/OU=Example CA/CN=Example Root CA"
3. 証明書の署名要求ファイルに基づいて、ルート証明書の公開鍵を作成します。有効期間は3650日で、ca-rsa.crtとして保存します。ここで、-extfileでは、この証明書がCA証明書であることを指定しています。
openssl x509 -req -in ca-rsa.csr -out ca-rsa.crt -signkey ca-rsa.key -days 3650 -sha256 -extfile <(printf "basicConstraints=critical,CA:TRUE\\nkeyUsage=critical,keyCertSign,cRLSign\\nsubjectKeyIdentifier=hash\\n")
4. 発行が完了したら、この証明書がCA証明書であるかどうかを検証します。
openssl x509 -in ca-rsa.crt -noout -text | grep -A2 "X509v3 Basic Constraints"
出力結果にCA:TRUEが含まれている場合、その証明書は正しいCA証明書です。参考出力結果は以下の通りです:
X509v3 Basic Constraints: critical
CA:TRUE # この証明書がCA証明書であることを表します。
X509v3 Key Usage: critical

ステップ2:ドメイン証明書を発行する

以签发一本指定域名 www.example.com 的证书为例、您可以通过以上生成的 CA 证书、开始自签发域名证书:
1. 以下のコマンドで証明書の秘密鍵を作成します。4096ビットの鍵長のRSA証明書を生成する場合を例に、生成した秘密鍵をrsa-domain.keyファイルとして保存します。
openssl ecparam -name secp384r1 -genkey -noout -out rsa-domain.key
2. 上記の証明書秘密鍵を使用して証明書署名要求ファイル(CSR)を生成し、rsa-domain.csrとして保存します。以下のコマンドでは、-subjで証明書の基本情報を指定しています。CNフィールドの内容を署名するドメイン名に置き換えてください。この例では、www.example.comを例としています。
openssl req -new -key rsa-domain.key -out rsa-domain.csr -subj "/C=US/ST=State/L=City/O=Example Org/OU=Example CA/CN=www.example.com"
3. CA証明書を使用して署名し、ドメイン名証明書の公開鍵を生成します。有効期間は3650日で、rsa-domain.crtとして保存します。
openssl x509 -req -in rsa-domain.csr -out rsa-domain.crt -CA ca-rsa.crt -CAkey ca-rsa.key -days 3650
4. CA証明書とドメイン名証明書の公開鍵を比較し、発行済みドメイン名証明書の証明書チェーンが正しいかどうかを検証します。
openssl verify -CAfile ca-rsa.crt rsa-domain.crt
出力結果にrsa-domain.crt:OKが表示されている場合、その証明書の発行チェーンが正しいことを示しています。参考は以下の通りです:
rsa-domain.crt: OK

ステップ1:ルート証明書を生成する

1. 以下のコマンドでルート証明書の秘密鍵を作成します。secp384r1暗号化アルゴリズムのECC証明書を生成する場合を例に、生成した秘密鍵をca-ecc.keyファイルとして保存します。
openssl ecparam -name secp384r1 -genkey -noout -out ca-ecc.key
2. 上記の証明書秘密鍵を使用して証明書署名要求ファイル(CSR)を生成し、ca-ecc.csrとして保存します。以下のコマンドでは、-subjで証明書の基本情報を指定しています。その内容は以下の通りです:
C=CNは国を表します。
ST=Stateは省を表します。
L=Cityは都市を表します。
O= Example Orgは組織を表します。
OU=Example CAは部門を表します。
CN=Example Root CAはその証明書の一般名を表します。CA証明書では、このフィールドでCAの用途を説明できます。ドメイン名証明書の場合は、このフィールドで証明書が発行されるドメイン名を指定する必要があります。
openssl req -new -key ca-ecc.key -out ca-ecc.csr -subj "/C=US/ST=State/L=City/O=Example Org/OU=Example CA/CN=Example Root CA"
3. 証明書の署名要求ファイルに基づいて、ルート証明書の公開鍵を作成します。有効期間は3650日で、ca-ecc.crtとして保存します。ここで、-extfileでは、この証明書がCA証明書であることを指定しています。
openssl x509 -req -in ca-ecc.csr -out ca-ecc.crt -signkey ca-ecc.key -days 3650 -sha256 -extfile <(printf "basicConstraints=critical,CA:TRUE\\nkeyUsage=critical,keyCertSign,cRLSign\\nsubjectKeyIdentifier=hash\\n")
4. 発行が完了したら、この証明書がCA証明書であるかどうかを検証します。
openssl x509 -in ca-ecc.crt -noout -text | grep -A2 "X509v3 Basic Constraints"
出力結果にCA:TRUEが含まれている場合、その証明書は正しいCA証明書です。参考出力結果は以下の通りです:
X509v3 Basic Constraints: critical
CA:TRUE # この証明書がCA証明書であることを表します。
X509v3 Key Usage: critical

ステップ2:ドメイン証明書を発行する

以签发一本指定域名 www.example.com 的证书为例、您可以通过以上生成的 CA 证书、开始自签发域名证书:
1. 以下のコマンドで証明書の秘密鍵を作成します。secp384r1暗号化アルゴリズムのECC証明書を生成する場合を例に、生成した秘密鍵をecc-domain.keyファイルとして保存します。
openssl ecparam -name secp384r1 -genkey -noout -out ecc-domain.key
2. 上記の証明書秘密鍵を使用して証明書署名要求ファイル(CSR)を生成し、ecc-domain.csrとして保存します。以下のコマンドでは、-subjで証明書の基本情報を指定しています。CNフィールドの内容を署名するドメイン名に置き換えてください。この例では、www.example.comを例としています。
openssl req -new -key ecc-domain.key -out ecc-domain.csr -subj "/C=US/ST=State/L=City/O=Example Org/OU=Example CA/CN=www.example.com"
3. CA証明書で署名し、ドメイン名証明書の公開鍵を生成します。有効期間は3650日で、ecc-domain.crtとして保存します。
openssl x509 -req -in ecc-domain.csr -out ecc-domain.crt -CA ca-ecc.crt -CAkey ca-ecc.key -days 3650
4. CA証明書とドメイン名証明書の公開鍵を比較し、発行済みドメイン名証明書の証明書チェーンが正しいかどうかを検証します。
openssl verify -CAfile ca-ecc.crt ecc-domain.crt
出力結果にecc-domain.crt:OKが表示されている場合、その証明書の発行チェーンが正しいことを示しています。
ecc-domain.crt: OK


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック