Package Exports
- make-csr-cli
- make-csr-cli/lib/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (make-csr-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
make-csr-cli
make-csr-cli
は、証明書署名要求(CSR)を簡単かつ効率的に生成するための強力なコマンドラインツールです。対話型モードと非対話型モードの両方を提供し、手動使用と自動化の両方に最適です。
主な機能
- 対話型モード: ユーザーフレンドリーなプロンプトで簡単にCSR生成
- 非対話型モード: 自動化とスクリプティング用のコマンドラインフラグ
- コモンネーム管理: セッション間でコモンネームを保存して再利用
- SSL証明書デプロイ: SSH経由でリモートサーバーへ証明書を自動デプロイ
- サブコマンド構造: 異なる操作のための整理されたコマンド構造
- クロスプラットフォーム: macOS、Linux、Windowsで動作
- カスタマイズ可能: 組織詳細、鍵サイズ、出力ディレクトリを設定可能
- 検索&フィルタ: 組み込み検索でコモンネームを素早く検索
- 進捗インジケータ: CSR生成中の明確なフィードバック
インストール
npmからインストール(推奨)
# グローバルインストール
npm install -g make-csr-cli
# 確認
make-csr --version
Goから直接ビルド
go build -o make-csr src/main.go
使用方法
対話型モード(デフォルト)
引数なしでコマンドを実行:
make-csr
以下のプロセスをガイドします:
- コモンネーム(CN)の選択または追加
- メールアドレスの入力
- CSRと秘密鍵の生成
非対話型モード
コマンドラインフラグでCSRを直接生成:
make-csr generate --cn example.com --email admin@example.com --no-interactive
利用可能なコマンド
make-csr generate
新しいCSRと秘密鍵を生成します。
フラグ:
--cn, -c
: 証明書のコモンネーム--email, -e
: 証明書のメールアドレス--country
: 国コード(デフォルト: JP)--state
: 州または県(デフォルト: Tokyo)--locality
: 地域または市(デフォルト: CHUOU-KU)--org, -o
: 組織(デフォルト: BRIDGE CO.,LTD.)--ou
: 組織単位(デフォルト: BRIDGE CO.,LTD.)--output, -d
: CSRとキーファイルの出力ディレクトリ--key-size
: RSA鍵サイズ(ビット)(デフォルト: 2048)--no-interactive
: 非対話型モードで実行
例:
# 対話型モード
make-csr generate
# カスタム組織で非対話型
make-csr generate --cn example.com --email admin@example.com \
--org "My Company" --country US --state CA --no-interactive
# カスタム出力ディレクトリと鍵サイズ
make-csr generate --cn example.com --email admin@example.com \
--output ./certificates --key-size 4096 --no-interactive
make-csr deploy
🆕
SSL証明書をSSH経由でリモートサーバーにデプロイします。
対話型モード (v2.1.0+)
パラメータを指定しない場合、対話的にホストとドメインを選択できます:
# 完全対話型モード - ホストとドメインを選択
make-csr deploy
# ホストのみ指定 - ドメインを選択
make-csr deploy --host myserver
# ドメインのみ指定 - ホストを選択
make-csr deploy --domain www.example.com
対話型モードでは:
- ホスト選択:
~/.ssh/config
から設定済みのホスト一覧を表示 - ドメイン選択:
~/.config/openssl/
から証明書が存在するドメイン一覧を表示
機能:
~/.ssh/config
からSSH設定を自動読み込み- 対話型選択でホストとドメインを簡単に選択
- 証明書ファイル(CA、CRT、KEY)をサーバーにアップロード
- 既存の証明書を自動バックアップ
- Webサーバー設定の検証
- サービスの自動リロードで新しい証明書を適用
フラグ:
--host, -H
: SSH configのホスト名(省略時は対話型選択)--domain, -d
: 証明書のドメイン名(省略時は対話型選択)--server, -s
: Webサーバータイプ(httpd、nginx、apache2)(デフォルト: httpd)--ssh-config
: SSHコンフィグファイルのパス(デフォルト: ~/.ssh/config)--cert-dir
: 証明書ファイルを含むローカルディレクトリ(デフォルト: ~/.config/openssl//) --ca-path
: カスタムリモートCAファイルパス--crt-path
: カスタムリモート証明書ファイルパス--key-path
: カスタムリモート秘密鍵ファイルパス--skip-validate
: 設定検証をスキップ--skip-reload
: サービスリロードをスキップ
例:
# 対話型モード(推奨)
make-csr deploy
# ホストを選択、ドメインは対話型
make-csr deploy --host rakuya-web01
# ドメインを選択、ホストは対話型
make-csr deploy --domain www.rakuya.com
# 完全指定(従来の方法)
make-csr deploy --host myserver --domain www.rakuya.com
# Nginxサーバーにデプロイ
make-csr deploy --host myserver --domain www.rakuya.com --server nginx
# カスタムパスを指定
make-csr deploy --host myserver --domain www.rakuya.com \
--ca-path /etc/httpd/conf/ssl.ca/www.rakuya.com.ca \
--crt-path /etc/httpd/conf/ssl.crt/www.rakuya.com.crt \
--key-path /etc/httpd/conf/ssl.key/www.rakuya.com.key
# カスタム証明書ディレクトリから
make-csr deploy --host myserver --domain www.example.com \
--cert-dir /path/to/certificates
証明書ファイルの配置:
デプロイコマンドは以下の場所から証明書ファイルを探します:
新しい形式(ドメイン別ディレクトリ):
~/.config/openssl/<domain>/ca.pem
~/.config/openssl/<domain>/cert.pem
~/.config/openssl/<domain>/key.pem
旧形式(フラットディレクトリ):
~/.config/openssl/<domain>/<domain>.ca
~/.config/openssl/<domain>/<domain>.crt
~/.config/openssl/<domain>/<domain>.key
SSHコンフィグの例:
Host myserver
HostName 192.168.1.100
User root
Port 22
IdentityFile ~/.ssh/id_rsa
注意事項:
- デプロイにはサーバー上でsudo権限が必要です
- 証明書ファイルは自動的に適切な権限が設定されます(証明書: 644、秘密鍵: 600)
- 既存のファイルは
.backup
拡張子でバックアップされます
make-csr list
保存されたコモンネームをリストして管理します。
フラグ:
--add, -a
: 新しいコモンネームを追加--remove, -r
: コモンネームを削除--search, -s
: コモンネームを検索
例:
# すべてのコモンネームをリスト
make-csr list
# 新しいコモンネームを追加
make-csr list --add "api.example.com"
# コモンネームを削除
make-csr list --remove "old.example.com"
# コモンネームを検索
make-csr list --search "example"
make-csr config
設定を管理します。
フラグ:
--show, -s
: 現在の設定を表示--edit, -e
: 設定を対話的に編集--reset, -r
: 設定をデフォルトにリセット
例:
# 現在の設定を表示
make-csr config --show
# 設定を編集
make-csr config --edit
# デフォルトにリセット
make-csr config --reset
グローバルオプション
--version, -v
: バージョン情報を表示--help, -h
: ヘルプ情報を表示
設定
設定ファイルは~/.config/openssl/
に保存されます:
openssl.conf
: 組織詳細を含むOpenSSL設定cn.txt
: 保存されたコモンネームのリスト
ワークフローの例
完全なSSL証明書デプロイメントフロー
# 1. CSRと秘密鍵を生成
make-csr generate --cn www.example.com --email admin@example.com
# 2. CSRをCA(認証局)に送信して証明書を取得
# (このステップは手動で行います)
# 3. 署名された証明書を適切なディレクトリに配置
# ~/.config/openssl/www.example.com/ca.pem (CA証明書)
# ~/.config/openssl/www.example.com/cert.pem (サーバー証明書)
# ~/.config/openssl/www.example.com/key.pem (秘密鍵)
# 4. サーバーにデプロイ
make-csr deploy --host production-server --domain www.example.com
# 5. 検証(オプション)
curl -I https://www.example.com # HTTPSが正常に動作することを確認
複数サーバーへの自動デプロイ
#!/bin/bash
# 複数のサーバーに同じ証明書をデプロイ
servers=("web1" "web2" "web3")
domain="www.example.com"
for server in "${servers[@]}"; do
echo "Deploying to $server..."
make-csr deploy --host "$server" --domain "$domain" --server nginx
done
トラブルシューティング
問題: "Command not found"
解決策: make-csr
が正しくビルドされていることを確認してください。
go build -o make-csr src/main.go
./make-csr --version
問題: "Host not found in SSH config"
解決策: ~/.ssh/config
にホスト設定が存在することを確認:
cat ~/.ssh/config | grep "Host myserver"
問題: "Permission denied"エラー
解決策: リモートサーバーでsudo権限があることを確認:
ssh myserver "sudo -n true"
問題: "Certificate files not found"
解決策: 証明書ファイルが正しいディレクトリに配置されていることを確認:
ls -la ~/.config/openssl/<domain>/
サポートされているWebサーバー
- Apache (httpd)
- Nginx
- Apache2
ライセンス
make-csr-cli
はMITライセンスのオープンソースソフトウェアです。
貢献
- リポジトリをフォーク
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature
) - 変更をコミット (
git commit -m 'Add some amazing feature'
) - ブランチにプッシュ (
git push origin feature/amazing-feature
) - プルリクエストを開く
サポート
問題、質問、貢献については以下をご覧ください: https://github.com/yourusername/make-csr-cli