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?

自己証明書作成手順

Last updated at Posted at 2024-10-05

TLS 設定確認用の Subject Alternative Name 付き自己証明書作成手順です。

自己認証局証明書の作成

自己認証局署名鍵・証明書作成
openssl req \
    -new \
    -out ca.crt \
    -keyout ca.key \
    -x509 \
    -days 3650 \
    -newkey rsa:2048 \
    -nodes \
    -subj "/CN=PrivateCA"

サーバ証明書の作成

サーバ証明書 CSR 作成
openssl req \
    -new \
    -out server.csr \
    -keyout server.key \
    -newkey rsa:2048 \
    -nodes \
    -subj "/CN=server.local"

ここでは Subject Alternative Name 設定用ファイルのファイル名を san_server.txt とします。

Subject Alternative Name の設定ファイル作成
echo "subjectAltName = DNS:server.local, DNS:localhost, IP:192.168.1.1, IP:127.0.0.1" > san_server.txt
CSR へ署名
openssl x509 \
    -req \
    -days 3650 \
    -in server.csr \
    -out server.crt \
    -CA ca.crt \
    -CAkey ca.key \
    -CAcreateserial \
    -extfile san_server.txt
作成した証明書の確認
openssl x509 -in server.crt -text -noout
p12 形式ファイルの作成
openssl pkcs12 -export \
    -in server.crt \
    -inkey server.key \
    -certfile ca.crt \
    -out server.p12 \
    -name "server_cert"

クライアント証明書の作成

クライアント証明書 CSR 作成
openssl req \
    -new \
    -out client.csr \
    -keyout client.key \
    -newkey rsa:2048 \
    -nodes \
    -subj "/CN=client.local"

ここでは Subject Alternative Name 設定用ファイルのファイル名を san_client.txt とします。

Subject Alternative Name の設定ファイル作成
echo "subjectAltName = DNS:client.local, IP:192.168.1.100" > san_client.txt
CSR へ署名
openssl x509 \
    -req \
    -days 3650 \
    -in client.csr \
    -out client.crt \
    -CA ca.crt \
    -CAkey ca.key \
    -CAcreateserial \
    -extfile san_client.txt
作成した証明書の確認
openssl x509 -in client.crt -text -noout
p12 形式ファイルの作成
openssl pkcs12 -export \
    -in client.crt \
    -inkey client.key \
    -certfile ca.crt \
    -out client.p12 \
    -name "client_cert"

自己 CA を信頼する CA リストに追加する

  • Ubuntu Linux

    sudo cp ca.crt /usr/local/share/ca-certificates/privateca.crt
    sudo update-ca-certificates
    

    この後、/etc/ssl/certs/privateca.pem が存在するはずです。

  • Python (Requests ライブラリだけかもですが)

    Python では OS の信頼する CA リストは参照せず、/usr/lib/python3/dist-packages/certifi/cacert.pem または venv/lib/python3.10/site-packages/certifi/cacert.pem のような、Python環境の信頼する CA リストを参照しているようです。
    このファイルに PrivateCA の証明書を追加すると requests が PrivateCA を信頼するようになります。

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?