2025/12/10

OpenSSL コマンド チートシート (PEM形式中心)

# OpenSSL コマンド チートシート (PEM形式中心)

## 証明書の表示
```bash
openssl x509 -in cert.pem -text -noout
```
- -in cert.pem : 入力する証明書ファイルを指定(PEM形式)
- -text : 証明書の詳細情報をテキスト形式で表示(Subject, Issuer, 有効期限, SANなど)
- -noout : 証明書本体(Base64エンコード部分)を出力しない

## CSR (証明書署名要求) の内容確認
```
openssl req -in request.csr -text -noout
```

## 秘密鍵の内容確認
```
openssl rsa -in private.key -check -noout
```
- -check : 秘密鍵の整合性を検証

## サーバー証明書の確認
```
openssl s_client -connect example.com:443 -servername example.com
```
- -connect host:port : 接続先ホストとポートを指定(HTTPSなら443)
- -servername host : SNI (Server Name Indication) を指定。複数ドメインを持つサーバーで正しい証明書を取得するために必要

証明書部分だけ抽出して詳細表示:
```
openssl s_client -connect example.com:443 -servername example.com /dev/null | openssl x509 -text -noout
```

## 秘密鍵とCSR作成
```
openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr
```
- -new : 新しいCSRを作成
- -newkey rsa:2048 : 新しいRSA秘密鍵を生成(2048bit)
- -nodes : 秘密鍵を暗号化せずに保存(パスフレーズなし)
- -keyout server.key : 秘密鍵の出力先ファイル
- -out server.csr : CSRの出力先ファイル

## 証明書の検証
```
openssl verify -CAfile ca.pem cert.pem
```
- -CAfile ca.pem : 信頼するCA証明書を指定

## 形式変換 (PEM中心)
#### PEM → DER
```
openssl x509 -in cert.pem -outform der -out cert.der
```
- -outform der : 出力形式をDER (バイナリ) に指定
- -out cert.der : 出力ファイル名

#### DER → PEM
```
openssl x509 -in cert.der -inform der -out cert.pem
```
- -inform der : 入力形式がDERであることを指定
- -out cert.pem : PEM形式で出力

#### PFX (PKCS#12) → PEM
```
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
```
- -in cert.pfx : 入力ファイル(PKCS#12形式)
- -out cert.pem : PEM形式で出力
- -nodes : 秘密鍵を暗号化せずに出力

## 自己署名証明書
### ダミー証明書の作成(自己署名証明書を一度に生成)
```
openssl req -x509 -newkey rsa:2048 -nodes -keyout dummy.key -out dummy.crt -days 365 -subj "/CN=example.com"
```
- 秘密鍵と自己署名証明書を同時に生成
- -x509 : CSRではなく自己署名証明書を直接出力
- -days 365 : 有効期限を365日に設定
- -subj : 対話入力を省略してDNを指定(例: CN=example.com)

### 通常の3ステップの流れ
```
# (1) 秘密鍵を生成
openssl genrsa -out server.key 2048

# (2) CSRを生成
openssl req -new -key server.key -out server.csr -subj "/CN=example.com"

# (3) CSRを秘密鍵で署名して自己署名証明書を作成
openssl x509 -req -in server.csr -signkey server.key -out server.crt -days 365
```

0 件のコメント:

コメントを投稿

人気の投稿