メニュー
SSL証明書 > APIドキュメント > サンプルクライアント
API サンプルクライアント

SSL証明書APIで注文を自動化:Goサンプルと実行例

SSL証明書の新規注文・再発行・証明書取得を、画面操作なしで自動化できます。
slogical SSL REST API を呼び出す Go サンプルクライアントです。go run ssl-client.go ですぐ実行でき、IIS/Windows 向けの PFX(PKCS#12)作成もローカルで完結します(OpenSSL 不要)。

ベータ公開中 このサンプルプログラムは現在動作確認中です。予告なく変更・修正される場合があります。不具合や気になる点があれば お問い合わせ からご連絡ください。

概要

REST APIでCSR生成→注文→ステータス確認を行うクイックスタートのデモ
▲ REST API クイックスタート:CSR生成 → 注文 → ステータス確認(サンドボックス実行例)。同じ流れは cURLサンプル と下記のコードでも追えます。

このサンプルクライアントは以下の 6 パターンに対応しています。

  • 新規注文(後払い)× メール認証 / ファイル認証 / DNS 認証
  • 再発行 × メール認証 / ファイル認証 / DNS 認証

認証の承認待ち中は自動的にポーリング(デフォルト 30 秒ごと)し、 証明書が発行されると自動でダウンロードします。
途中で中断しても、ステートファイルssl-state.json)から処理を再開できます。

DNS 認証(Route53): AWS CLI がインストールされ、aws configure で認証情報が設定済みであれば、 TXT レコードの作成・削除を自動で行います。 AWS CLI がない場合は、設定すべき DNS レコードを表示して手動設定を案内します。

ダウンロード

一式(ssl-client.go / go.mod / go.sum の3ファイル入り zip)をダウンロードして展開し、Go がインストールされた環境で実行してください。

↓ サンプル一式をダウンロード(ssl-client.zip)

個別ファイル: ssl-client.gogo.modgo.sum (3ファイルを同じフォルダに置いてください)

Go のインストールがまだの方は go.dev/doc/install からダウンロードしてください(Go 1.20 以上推奨)。

セットアップ

ssl-client.zip を任意のフォルダに展開するだけです。 同梱の go.mod / go.sum は pfx コマンドが使う PKCS#12 ライブラリのバージョン固定指定で、初回実行時に自動取得されます (BSD-3 ライセンスの pure-Go 実装のため OpenSSL のインストールは不要です)。

# Go バージョン確認(1.20 以上)
go version

# zip を展開したフォルダで実行するだけ
go run ssl-client.go help

※ go.mod / go.sum を使わず手動でセットアップする場合: go mod init sslclient && go get software.sslmate.com/src/go-pkcs12@v0.7.3 golang.org/x/term@v0.20.0 (バージョンは固定指定を推奨します。@latest は PFX の生成形式が予告なく変わる可能性があります)

API キーは マイページ で取得できます。
毎回指定するのが面倒な場合は環境変数 SSL_API_KEY に設定しておくと便利です。

# Linux / macOS
export SSL_API_KEY=your_api_key_here

# Windows PowerShell
$env:SSL_API_KEY = "your_api_key_here"

新規注文

order コマンドで後払いの新規注文を作成します。
注文後、CSR と秘密鍵が自動生成されてカレントディレクトリに保存されます。

秘密鍵について: 生成された ssl-client.key は厳重に保管してください。 紛失した場合は再発行が必要です。

新規注文 — メール認証

DigiCert が admin@ / webmaster@ / postmaster@ 等に承認メールを送信します。
-dcv-email で受信するアドレスを指定してください。

go run ssl-client.go order \
  -api-key      YOUR_API_KEY \
  -product      RapidSSL \
  -years        1 \
  -domain       www.example.com \
  -dcv          email \
  -dcv-email    admin@example.com \
  -corp-name    "株式会社〇〇" \
  -corp-name-alph "Example Corp" \
  -name1        田中 \
  -name2        太郎 \
  -name-alph1   Tanaka \
  -name-alph2   Taro \
  -tel          03-1234-5678 \
  -email        tanaka@example.com \
  -post         1000001 \
  -addr1        東京都 \
  -addr2        千代田区 \
  -addr3        "〇〇1-1"

実行すると以下の流れで処理が進みます:

  1. CSR と秘密鍵を生成(ssl-client.key / ssl-client.csr
  2. API に注文を送信(POST /ssl/api/v1/orders
  3. 指定のメールアドレスに承認メールが送信されます → クリックしてください
  4. 30 秒ごとにステータスをポーリング
  5. 発行完了 → cert_12345.pem / chain_12345.pem に保存

新規注文 — ファイル認証

Web サーバーの特定 URL にファイルを設置して認証する方式です。
プログラムがファイルを自動作成するので、それを Web サーバーのドキュメントルートにコピーしてください。

go run ssl-client.go order \
  -api-key      YOUR_API_KEY \
  -product      RapidSSL \
  -years        1 \
  -domain       www.example.com \
  -dcv          file \
  -corp-name    "株式会社〇〇" \
  -corp-name-alph "Example Corp" \
  -name1        田中 \
  -name2        太郎 \
  -name-alph1   Tanaka \
  -name-alph2   Taro \
  -tel          03-1234-5678 \
  -email        tanaka@example.com \
  -post         1000001 \
  -addr1        東京都 \
  -addr2        千代田区 \
  -addr3        "〇〇1-1"

実行すると以下の流れで処理が進みます:

  1. CSR と秘密鍵を生成
  2. API に注文を送信 → DCV トークンを取得
  3. .well-known/pki-validation/fileauth.txt を作成(内容はトークン)
  4. このファイルを Web サーバーのドキュメントルートに配置してください
    http://www.example.com/.well-known/pki-validation/fileauth.txt でアクセス可能に
  5. 30 秒ごとにステータスをポーリング → 認証完了で証明書を保存

新規注文 — DNS 認証

AWS CLI がインストールされていれば、Route53 の TXT レコードを自動で作成・削除します。
-dns-zone-id に Route53 の Hosted Zone ID を指定してください。

go run ssl-client.go order \
  -api-key      YOUR_API_KEY \
  -product      RapidSSL \
  -years        1 \
  -domain       www.example.com \
  -dcv          dns \
  -dns-zone-id  Z0123456789ABCDEFGHIJ \
  -corp-name    "株式会社〇〇" \
  -corp-name-alph "Example Corp" \
  -name1        田中 \
  -name2        太郎 \
  -name-alph1   Tanaka \
  -name-alph2   Taro \
  -tel          03-1234-5678 \
  -email        tanaka@example.com \
  -post         1000001 \
  -addr1        東京都 \
  -addr2        千代田区 \
  -addr3        "〇〇1-1"

Route53 に以下の TXT レコードを自動作成し、証明書発行後に自動削除します:

名前  : _dnsauth.www.example.com
タイプ: TXT
値    : <DCV トークン>
TTL   : 60

-dns-zone-id を省略すると手動モードになります。
プログラムが設定すべき DNS レコードを表示するので、DNS 管理画面で設定して Enter を押してください。

go run ssl-client.go order \
  -api-key      YOUR_API_KEY \
  -product      RapidSSL \
  -years        1 \
  -domain       www.example.com \
  -dcv          dns \
  -corp-name    "株式会社〇〇" \
  -name1        田中 \
  -name2        太郎 \
  -tel          03-1234-5678 \
  -email        tanaka@example.com

実行すると以下の表示が出るので、DNS 管理画面で設定して Enter を押してください:

━━ DNS 認証(手動設定)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  名前  : _dnsauth.www.example.com
  タイプ: TXT
  値    : _abcdefghijklmnopqrstuvwxyz01234
  TTL   : 60
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  DNS レコードを設定したら Enter を押してください ...

再発行

reissue コマンドで発行済み注文の再発行を行います。
新しい CSR・秘密鍵が自動生成されます(ssl-client-reissue.key / ssl-client-reissue.csr)。

-order-id には当サイトの注文 ID を指定します(マイページで確認できます)。
ステートファイルが存在する場合は、注文 ID を省略できます。

再発行 — メール認証

go run ssl-client.go reissue \
  -api-key      YOUR_API_KEY \
  -order-id     12345 \
  -domain       www.example.com \
  -dcv          email \
  -dcv-email    admin@example.com

再発行 — ファイル認証

go run ssl-client.go reissue \
  -api-key      YOUR_API_KEY \
  -order-id     12345 \
  -domain       www.example.com \
  -dcv          file

実行すると .well-known/pki-validation/fileauth.txt が作成されます。
Web サーバーのドキュメントルートに配置してください。

再発行 — DNS 認証

go run ssl-client.go reissue \
  -api-key      YOUR_API_KEY \
  -order-id     12345 \
  -domain       www.example.com \
  -dcv          dns \
  -dns-zone-id  Z0123456789ABCDEFGHIJ
go run ssl-client.go reissue \
  -api-key      YOUR_API_KEY \
  -order-id     12345 \
  -domain       www.example.com \
  -dcv          dns

途中再開

処理の途中でCtrl+C などで中断しても、ステートファイル(ssl-state.json)に状態が保存されています。
同じコマンドをもう一度実行するだけで、中断した時点から自動的に再開します。

# 例: 中断した新規注文(メール認証)を再開する場合
# ssl-state.json が存在する限り、フラグを省略しても再開できます
go run ssl-client.go order -api-key YOUR_API_KEY

ステートファイルの内容(例):

{
  "action": "order",
  "step": "pending-dcv",
  "order_id": 12345,
  "dcv": "file",
  "token": "_abcdefghijklmnopqrstuvwxyz01234",
  "domain": "www.example.com",
  "file_auth_path": ".well-known/pki-validation/fileauth.txt"
}

処理完了後は stepcompleted に更新されます。
別のドメインの注文を始める場合は、ステートファイルを削除または別名で指定してください。

# ステートファイルを指定して別の注文を管理
go run ssl-client.go order -api-key YOUR_API_KEY -domain other.example.com \
  -state-file ssl-state-other.json ...

満了一覧(expiry)

更新・再発行期日の迫っているコモンネームの一覧を表示します。
マイページからダウンロードできる CSV(renewal_cn.csv / reissue_cn.csv / cert_expiry_cn.csv)と同じ内容です。

# 契約満了が迫っているもの(更新のご検討対象)
go run ssl-client.go expiry -api-key YOUR_API_KEY -type renewal

# 証明書が契約より先に満了するもの(再発行が必要)
go run ssl-client.go expiry -api-key YOUR_API_KEY -type reissue

# 証明書満了90日以内すべて
go run ssl-client.go expiry -api-key YOUR_API_KEY -type cert

出力例:

種別: renewal / 件数: 2
注文ID:12345	CN:www.example.jp	ステータス:issued	後続注文:-	契約満了日:2026-08-01	証明書満了日:2026-08-01	契約満了まで:28日
注文ID:12388	CN:shop.example.jp	ステータス:issued	後続注文:発行待ち	契約満了日:2026-09-10	証明書満了日:2026-09-10	契約満了まで:68日

「後続注文:発行待ち」は、同じコモンネームでこの注文より新しい未発行の注文(更新・再発行の手続き中など)があることを示します。
残日数は renewal では契約満了まで、reissue / cert では証明書満了までの日数です(マイナスは満了済み)。

PFX(PKCS#12)作成 — IIS/Windows 向け

pfx コマンドで、ダウンロード済みの証明書と reissue が生成した秘密鍵から IIS にそのままインポートできる PFX ファイルを作成します。 OpenSSL は不要で、処理はすべてお手元の PC で完結します(秘密鍵がマシンの外に出ることはありません。API 通信もありません)。

Windows サーバーの証明書更新は、次の流れで「サーバーの前に行くのは PFX の取り込みとバインドだけ」になります:

# ① 自席: API で再発行(CSR・秘密鍵を自動生成)
go run ssl-client.go reissue -api-key YOUR_API_KEY -order-id 12345 -domain www.example.jp -dcv file

# ② 自席: 証明書ダウンロード(発行完了後に自動実行されます。手動なら:)
go run ssl-client.go download -api-key YOUR_API_KEY -order-id 12345

# ③ 自席: PFX 作成(ファイル名は ①② の出力から自動解決)
go run ssl-client.go pfx -order-id 12345

# ④⑤ サーバー: PFX 取り込みとバインド(手順は ③ の実行時に表示されます)

# 仕上げ: 自席からバインド反映を確認
go run ssl-client.go check -domain www.example.jp -order-id 12345

パスワードは省略するとマスク表示の対話入力になります(画面に表示されません)。 自動化する場合は -password-file(1行目にパスワードを書いたファイル)か環境変数 SSL_PFX_PASSWORD をご利用ください (-password フラグはコマンド履歴・プロセス一覧に残るため非推奨です)。 PKCS#12 の鍵導出は総当たり攻撃に強くないため、12文字以上のランダムなパスワードを推奨します。

形式は AES-256 + PBKDF2-SHA-256(PKCS#12 Modern2023 profile・バージョン固定)で、Windows Server 2019 以降 / OpenSSL 3.0 以降で読み込めます。 Windows Server 2016 以前に取り込む場合は -compat(3DES 互換モード)を指定してください(暗号強度が弱いため、ファイルの取り扱いにご注意ください)。 生成完了時に、サーバー側での取り込みコマンド(Import-PfxCertificate)と IIS バインドの手順が表示されます。

バインド後の確認(check)

check コマンドで、サーバーが実際に配信している証明書を自席から確認できます。 -order-id を指定すると、ダウンロード済みの証明書と SHA-256 フィンガープリント(証明書全体)を比較し、 新しい証明書に差し替わったかを判定します。

go run ssl-client.go check -domain www.example.jp -order-id 12345

出力例:

■ 配信中の証明書(www.example.jp:443)
  CN          : www.example.jp
  発行者      : RapidSSL TLS RSA CA G1
  シリアル    : 0A1B2C3D...
  有効期間    : 2026-07-19 〜 2027-02-03(残り 199 日)
  信頼チェーン: OK(ホスト名一致・信頼された CA)
  差し替え確認: ✅ cert_12345.pem と一致(SHA-256 フィンガープリント)— 新しい証明書が配信されています

監視結果の取得(monitor)— SSL監視サービス Pro

monitor コマンドで、SSL監視サービス(Pro プラン)の 監視対象全 FQDN の最新チェック結果(スコア・残日数・満了日)を取得できます。 自社の管理画面・台帳との連携にご利用ください。

go run ssl-client.go monitor -api-key YOUR_API_KEY

出力例:

監視対象: 3 件(FQDN 毎の最新チェック結果)
www.example.jp                           スコア:A+(95) 残り180日 満了:2027-01-15 23:59:59
shop.example.jp                          スコア:A(88) 残り45日 満了:2026-09-02 23:59:59
admin.example.jp:8443                    スコア:B(76) 残り30日 満了:2026-08-18 23:59:59 (外部CN)

オプション一覧

order フラグ

フラグ説明デフォルト
-api-keyAPI キー(環境変数 SSL_API_KEY でも可)
-product製品名: RapidSSL / RapidSSLWildcard / QuickSSLPremium / QuickSSLPremiumWildcardRapidSSL
-years有効年数(1〜3)1
-domainドメイン名(CN)【必須】
-sans追加ドメイン(スペース区切り)
-dcv認証方法: email / file / dnsemail
-dcv-emailメール認証のアドレス(例: admin@example.com
-dns-zone-idRoute53 Hosted Zone ID(dns 認証で自動設定する場合)
-corp-name会社名(日本語)
-corp-name-alph会社名(英語)
-name1担当者 姓
-name2担当者 名
-name-alph1担当者 姓(英語)
-name-alph2担当者 名(英語)
-tel電話番号
-email担当者メールアドレス
-post郵便番号
-addr1住所(都道府県)
-addr2住所(市区町村)
-addr3住所(番地)
-state-fileステートファイルのパスssl-state.json
-poll-intervalポーリング間隔(秒)30

reissue フラグ

フラグ説明デフォルト
-api-keyAPI キー
-order-id再発行する注文 ID(省略時はステートファイルから)
-domainドメイン名(省略時はステートファイルから)
-dcv認証方法: email / file / dnsemail
-dcv-emailメール認証アドレス
-dns-zone-idRoute53 Hosted Zone ID
-state-fileステートファイルのパスssl-state.json
-poll-intervalポーリング間隔(秒)30

status / download フラグ

フラグ説明
-api-keyAPI キー
-order-id注文 ID(省略時はステートファイルから)
-state-fileステートファイルのパス(デフォルト: ssl-state.json

expiry フラグ

フラグ説明デフォルト
-api-keyAPI キー
-type一覧の種別: renewal(契約満了90日以内)/ reissue(証明書が契約より先に満了)/ cert(証明書満了90日以内すべて)renewal

pfx フラグ(API通信なし・ローカル完結)

フラグ説明デフォルト
-key秘密鍵ファイル(reissue が生成した鍵。PKCS#1/PKCS#8/SEC1 対応)ssl-client-reissue.key
-cert証明書ファイルcert_<注文ID>.pem
-chain中間証明書ファイル(-cert 明示時は自動選択しません)chain_<注文ID>.pem-cert 省略時のみ)
-order-id注文 ID(ファイル名の解決に使用。省略時はステートファイルから)
-out出力 PFX ファイル名certificate_<注文ID>.pfx
-password-filePFX パスワードを1行目に書いたファイル(自動化向け)
-passwordPFX パスワード(履歴・プロセス一覧に残るため非推奨)環境変数 SSL_PFX_PASSWORD → マスク対話入力
-compat互換モード(3DES)。Windows Server 2016 以前へ取り込む場合のみオフ(AES-256 = Server 2019 以降)

check フラグ

フラグ説明デフォルト
-domain確認するドメイン名【必須】
-portポート番号443
-order-idダウンロード済み証明書(cert_<注文ID>.pem)と SHA-256 フィンガープリント比較する注文 IDステートファイルから

monitor フラグ

フラグ説明デフォルト
-api-keyAPI キー(SSL監視サービス Pro プランのご契約が必要)
更新履歴
2026年07月19日 3コマンドを追加:
  • pfx — PFX(PKCS#12)作成。IIS/Windows向け・OpenSSL不要・秘密鍵はローカルのまま(一式 zip 配布を開始=go.mod / go.sum 同梱。パスワードはマスク入力・Server 2016 以前向け -compat あり)
  • check — バインド後にサーバーが配信中の証明書を自席から確認(ダウンロード済み証明書とのSHA-256フィンガープリント一致判定つき)
  • monitor — SSL監視サービス(Proプラン)の最新チェック結果を取得
2026年07月04日 expiry コマンド(満了間近CN一覧)を追加
2026年06月13日 サンプルクライアント公開(order / reissue / status / download)
 📅 ページ更新日: 2026/07/19