文系男子が日和るIT開発~IT知識なしで飛び込んだIT企業

文系男子だからIT企業に就職するなんて考えてもみませんでしたが、日和ながら日々くらいついています。

CentOS6.8 自己署名証明書(オレオレ証明書)を作成する

Red Hatオレオレ証明書を作成する機会があったので、
Cent OSでも試してみます。
基本的には同じかと思います。

Linuxの多くのディストリビューションは、OpenSSLを採用しているかと思います。
OpenSSLを活用することで、TLS/SSL通信や暗号化を行うことができますが、
今回は自己署名証明書を作成してみました。

OPENSSLの導入とバージョンの確認

OpenSSLのインストール場所と、

 

バージョンの確認方法です。

バージョンの確認は「openssl version」です。

 [root@localhost certs]# which openssl
/usr/bin/openssl
[root@localhost certs]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

 サーバの鍵の作成と、オレオレ証明書の作成

(1)サーバ鍵の作成

今回は、「localhost.crt」という名称の鍵を作成します。
localhost」の部分は任意の名前で大丈夫なようです。

実行コマンド:

[root@localhost ~]# cd /etc/pki/tls/certs
[root@localhost certs]# make localhost.crt

結果:

umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > localhost.key
Generating RSA private key, 2048 bit long modulus
.............+++
...................................................................................+++
e is 65537 (0x10001)
Enter pass phrase:
3078133484:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:You must type in 4 to 8191 characters
Enter pass phrase:
3078133484:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:You must type in 4 to 8191 characters
Enter pass phrase:
Verifying - Enter pass phrase:
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key localhost.key -x509 -days 365 -out localhost.crt -set_serial 0
Enter pass phrase for localhost.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----

f:id:dreamjourney:20160110230300j:plain

(2)サーバ証明書の作成

上記の実行結果に続いて、証明書作成の手続きに移ります。

証明書作成の際に必要な情報があります。

  • Country Name:サーバ管理を行う組織の所在地の国名(2文字)
  • State or Province Nameサーバ管理を行う組織の所在地の地域名
  • Locality Nameサーバ管理を行う組織の所在地の都市名
  • Organization Name:会社名などの組織名
  • Organizational Unit Name:会社の部門など
  • Common NameFQDNなど
  • Email Address :サーバや組織の管理者のメルアド

-----
Country Name (2 letter code) [XX]:jp
State or Province Name (full name) :Tokyo
Locality Name (eg, city) [Default City]:Shinjuku-Ku
Organization Name (eg, company) [Default Company Ltd]:Alpha
Organizational Unit Name (eg, section)
:Beta
Common Name (eg, your name or your server's hostname) :www.hogehoge-xxxxx.test.ne.jp
Email Address
:hogehoge@nnnnn.ne.jp
[root@localhost certs]# 

 

f:id:dreamjourney:20160110230317j:plain

 

(3)作成後の確認

作成後、「localhost.crt」「localhost.key」の2ファイルが作成されていることの確認を行います。

f:id:dreamjourney:20160110230623j:plain

 

あまり意識していなかったことですが、
秘密鍵localhost.crt」は、privateディレクトリに移動しておくのがよいとのこと、

f:id:dreamjourney:20160110230824j:plain

 

サーバ証明書の確認

[root@localhost certs]# openssl x509 -noout -text -in localhost.crt
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=jp, ST=Tokyo, L=Shinjuku-Ku, O=Alpha, OU=Beta, CN=www.hogehoge-xxxxx.test.ne.jp/emailAddress=hogehoge@nnnnn.ne.jp
Validity
Not Before: Jan 10 13:20:21 2016 GMT
Not After : Jan 9 13:20:21 2017 GMT
Subject: C=jp, ST=Tokyo, L=Shinjuku-Ku, O=Alpha, OU=Beta, CN=www.hogehoge-xxxxx.test.ne.jp/emailAddress=hogehoge@nnnnn.ne.jp
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:a9:cd:73:fe:25:e5:75:71:62:0e:dd:5c:b6:21:

  (省略)

 

f:id:dreamjourney:20160110231126j:plain

 

オレオレ証明書は、もちろん商用環境では使っていません。
内部のテスト用のサイトなどを作る範囲での作業です。

もちろんテスト用のサーバ環境だとしてもCA認証局CSR発行し、
導入した証明書がベストなのですが、
テストレベルやフェーズによってはこれで十分かと思います。

 

 

 

OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細―

OpenSSL―暗号・PKI・SSL/TLSライブラリの詳細―