自己証明書を簡単に作成する方法
環境
- OS: CentOS 7.4
OpenSSLのパッケージが用意した?スクリプト
RPMなどのパッケージでopensslを導入した環境では、下記のスクリプトが配置されている。
$ ls -al /etc/pki/tls/certs/make-dummy-cert -rwxr-xr-x. 1 root root 610 8月 4 2017 /etc/pki/tls/certs/make-dummy-cert $ rpm -qf /etc/pki/tls/certs/make-dummy-cert openssl-1.0.2k-8.el7.x86_64 $ cat /etc/pki/tls/certs/make-dummy-cert #!/bin/sh umask 077 answers() { echo -- echo SomeState echo SomeCity echo SomeOrganization echo SomeOrganizationalUnit echo localhost.localdomain echo root@localhost.localdomain } if [ $# -eq 0 ] ; then echo $"Usage: `basename $0` filename [...]" exit 0 fi for target in $@ ; do PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` trap "rm -f $PEM1 $PEM2" SIGINT answers | /usr/bin/openssl req -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 2> /dev/null cat $PEM1 > ${target} echo "" >> ${target} cat $PEM2 >> ${target} rm -f $PEM1 $PEM2 done
このスクリプトを使うことで、下記のように秘密鍵と証明書がセットになったファイルを簡単に作成できる。
-----BEGIN PRIVATE KEY----- 省略 -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- 省略 -----END CERTIFICATE-----
使い方
下記のように、作成するファイル名を引数で与えれば一度に複数のファイルが作成できる。
$ /etc/pki/tls/certs/make-dummy-cert /tmp/test_cert_{1,2,3,4,5,6,7,8,9}.crt $ ls -al /tmp/test_cert_* -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_1.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_2.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_3.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_4.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_5.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_6.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_7.crt -rw-------. 1 aoishi aoishi 3258 4月 5 15:57 /tmp/test_cert_8.crt -rw-------. 1 aoishi aoishi 3254 4月 5 15:57 /tmp/test_cert_9.crt
秘密鍵と証明書は下記の要領で分離する。
x) 秘密鍵 $ sed -n -e "/-----BEGIN PRIVATE KEY-----/,/-----END PRIVATE KEY-----/p" /tmp/test_cert_1.crt x) 証明書 $ sed -n -e "/-----BEGIN CERTIFICATE-----/,/-----END CERTIFICATE-----/p" /tmp/test_cert_1.crt