0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

オレオレ証明書の作成方法

Posted at

この記事は

自己署名証明書、いわゆるオレオレ署名/オレオレ証明書とよばれるものを作成する手順のメモ。

対象環境

  • 2025.01.18記
  • Windows 11
  • Visual Studio 2022 Community

1.【共通初期処理】

  1. コマンドプロンプトを管理者権限で起動する

  2. 各種Pathを通すため、開いたコマンドプロンプトで以下のバッチを実行する

    C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat
    
    • Visual Studio 2019以前の場合だと以下を実行する
      C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32.bat
      
  3. 作業フォルダに移動する

    cd /d (作業フォルダ)
    

2.【認証局(Root)証明書の作成】

  1. ルート証明書用のセキュリティ証明書ファイル(.cer)と秘密鍵ファイル(.pvk)を作成する

    makecert -n "CN=(名前) Root CA,O=(名前),C=JP" -r -cy authority -a sha256 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -sv (名前)RootCA.pvk (名前)RootCA.cer
    

    makecert -n "CN=(名前) Root CA,O=(名前),C=JP" -r -cy authority -a sha256 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2,1.3.6.1.5.5.7.3.3,1.3.6.1.5.5.7.3.4 -sv (名前)RootCA.pvk (名前)RootCA.cer

    • (名前) の部分は変えてください

    • ekuオプションには、このルート証明書から派生して作成する予定の証明書の種類を指定する

      作成する証明書の種類 eku
      サーバー認証 1.3.6.1.5.5.7.3.1
      クライアント認証 1.3.6.1.5.5.7.3.2
      コード署名 1.3.6.1.5.5.7.3.3
      メールの保護 1.3.6.1.5.5.7.3.4
  2. ルート証明書のパスワードを作成する
    image.png

  3. パスワードの入力を求められるので、今作成したパスワードを入力する
    image.png

  4. cerファイルとpvkファイルが出来上がる

    • (名前)RootCA.cer
    • (名前)RootCA.pvk

2.1. 【オレオレ署名を有効にする】

  1. 作成した cer ファイルを "信頼されたルート証明機関" にインストールする

ルート証明書を "信頼されたルート証明機関" にインストールすることで以降の手順で作成する各証明書が有効な証明書として認識されます。

  • 【署名するPC】
    証明書をインストールする必要はありません

  • 【署名されたファイルを使用するPC】
    ルート証明書を信頼できるルート証明機関にインストールする必要があります


3. オレオレコード署名

3.1. 【コード署名証明書の作成】

  1. コード署名用のセキュリティ証明書ファイル(.cer)と秘密鍵ファイル(.pvk)を作成する

    makecert -n "CN=(名前) Code Signing,O=(名前),C=JP" -a sha256 -eku 1.3.6.1.5.5.7.3.3 -sv (名前)CodeSigning.pvk -ic (名前)RootCA.cer -iv (名前)RootCA.pvk (名前)CodeSigning.cer
    
  2. コード署名証明書のパスワードを作成する
    image.png

  3. パスワードの入力を求められるので、今作成したパスワードを入力する
    image.png

  4. ルート証明書のパスワードを求められるので、入力する
    image.png

  5. cerファイルとpvkファイルが出来上がる

  6. X.509形式のセキュリティ証明書ファイル(.cer)をラッピングし、ソフトウェア発行元証明ファイル(.spc)に変換する

    cert2spc (名前)CodeSigning.cer (名前)CodeSigning.spc
    
  7. 秘密鍵ファイル(.pvk)とソフトウェア発行元証明ファイル(.spc)を電子証明書キーペアファイル(.pfx)にパッケージング

    pvk2pfx -pvk (名前)CodeSigning.pvk -spc (名前)CodeSigning.spc -pfx (名前)CodeSigning.pfx -f /po (pfxにパスワードをつける)
    
    • ファイル署名証明書のパスワード を入力
      image.png
  8. コード署名用の cer, pvk, spc, pfx が出来上がる

    • (名前)CodeSigning.cer
    • (名前)CodeSigning.pvk
    • (名前)CodeSigning.spc
    • (名前)CodeSigning.pfx

3.2.【ファイルに署名する方法】

  1. 署名する
    signtool.exe sign /fd sha256 /f (名前)CodeSigning.pfx /p (pfxのパスワード) /td sha256 /tr http://timestamp.digicert.com?alg=sha256 /v (署名するファイル).exe
    

4. オレオレサーバー署名

4.1.【サーバー証明 兼 メール保護 証明書の作成】

  1. サーバー証明用 兼 メール保護用のセキュリティ証明書ファイル(.cer)と秘密鍵ファイル(.pvk)を作成する

    makecert -n "CN=TakumiSoft68 Server and Mail CA,O=TakumiSoft68,C=JP" -a sha256 -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.4 -sv TakumiSoft68Server.pvk -ic TakumiSoft68RootCA.cer -iv TakumiSoft68RootCA.pvk TakumiSoft68Server.cer
    
  2. サーバー証明書のパスワードを作成する
    image.png

  3. パスワードの入力を求められるので、今作成したパスワードを入力する
    image.png

  4. ルート証明書のパスワードを求められるので、入力する
    image.png

  5. cerファイルとpvkファイルが出来上がる

  6. 秘密鍵ファイル(.pvk)とセキュリティ証明書ファイル(.cer)を電子証明書キーペアファイル(.pfx)にパッケージング

    pvk2pfx -pvk (名前)Server.pvk -spc (名前)Server.cer -pfx (名前)ServerCA.pfx -f /po (pfxにパスワードをつける)
    
    • サーバー署名証明書のパスワード を入力
      image.png
  7. サーバー署名用の cer, pvk, pfx が出来上がる

    • (名前)Server.cer
    • (名前)Server.pvk
    • (名前)Server.pfx

4.2 【オレオレ署名付きCSR を作成】

  1. CSRファイル を作成

    1. iis を使って作成する
  2. (名前)Server.cer から (名前)Server.cer.pem を作成

    1. エクスプローラで (名前)Server.cer をダブルクリック
    2. 詳細タブのファイルにコピー を選択
      image.png
    3. Base 64 encoded X.509 を選択
      image.png
    4. ファイル名を指定して保存
    5. (名前)Server.cer.pem.cer という拡張子で保存されてしまうので、最後の .cer を消して拡張子が .pem のファイルにする
  3. 秘密鍵ファイル(pvk)から(key)形式を作成

    • 直接行う方法が見つからなかったので、いったんpfxを作成し、openssl でkeyファイルを抜き出す
    1. openssl が使えるようにする
    2. 秘密鍵ファイル(pvk)を(key)形式に変換
      openssl pkcs12 -in (名前)Server.pfx -nocerts -nodes -out (名前)Server.pvk.key
      
    3. (名前)Server.pvk.key をテキストエディタで開き、-----BEGIN PRIVATE KEY----- より前のヘッダー部分を削除して (名前)Server.pvk.key.pem として保存する
  4. csrに署名する

    openssl x509 -req -CA (名前)Server.cer.pem -CAkey (名前)Server.pvk.key.pem -CAcreateserial -in (名前)Server.csr.pem -out (名前)Server.crt.pem -days 3650
    
    • (名前)Server.cer.srl と (名前)Server.crt.pem が作成される

以下のページを参考にしました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?