このWebサイト ひつじ帳 は、管理者がWEB関連の技術をまとめた備忘録サイトです。 Linux,CentOS,PHP,MySQL,Blogger,JavaScript,CSS について記録しています。

CentOS-7/SSL:TLS証明書作成(自己署名証明書・秘密鍵)

[CentOS-7.6]

CentOS-7.6 で、SSL/TLSのサーバー証明書を作成します。

CentOSのバージョン7以上ならば、同じような設定で可能だと思います。

ここで、作成するSSL/TLSのサーバー証明書は、自己署名証明書と秘密鍵です。
認証機関が発行する証明書ではありません。

動作確認用に利用する目的で、自己の証明書を作成しておきます。


Makefileを編集する

SSL/TLS証明書を作成する為の Makefile を編集します。

/etc/pki/tls/certs/Makefile 編集

#----- Makefile ファイルをバックアップ
[root@vm ~]# cp -a /etc/pki/tls/certs/Makefile /etc/pki/tls/certs/Makefile.org
[root@vm ~]#


#----- ファイルを編集する
[root@vm ~]# vi /etc/pki/tls/certs/Makefile

--------------------------------------------------
#----- ★有効期限を100年に設定する
DAYS=365
 ↓ 変更する (365 から 36500 にする)
DAYS=36500
--------------------------------------------------


#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#


自己署名証明書・秘密鍵を作成する

自己署名証明書・秘密鍵を作成します。
作成には、任意のパスワードが必要になります。
外部公開しないサーバーなら忘れないような簡単なパスワードで良いと思います。

自己署名証明書・秘密鍵を作成

#----- サーバー用 自己署名証明書・秘密鍵を作成する
[root@vm ~]# make /etc/pki/tls/certs/server.crt
umask 77 ; \
/usr/bin/openssl genrsa -aes128 2048 > /etc/pki/tls/certs/server.key
Generating RSA private key, 2048 bit long modulus
........+++
.............................................+++
e is 65537 (0x10001)
Enter pass phrase:      ←★ 任意のパスワードを入力して [Enter] (後で必要になるので忘れないように )
Verifying - Enter pass phrase:      ←★ 確認用のパスワードを再入力して [Enter]
umask 77 ; \
/usr/bin/openssl req -utf8 -new -key /etc/pki/tls/certs/server.key -x509 -days 36500 -out /etc/pki/tls/certs/server.crt
Enter pass phrase for /etc/pki/tls/certs/server.key:      ←★ 上で設定したパスワードを入力して [Enter]
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.
-----
Country Name (2 letter code) [XX]:JP      ←★ 国名を入力して [Enter]
State or Province Name (full name) []:Osaka      ←★ 都道府県名を入力して [Enter]
Locality Name (eg, city) [Default City]:Osaka      ←★ 市区町村名を入力して [Enter]
Organization Name (eg, company) [Default Company Ltd]:VM      ←★ 組織名を入力して [Enter]
Organizational Unit Name (eg, section) []:      ←★ 部門名(空で良い)を入力して [Enter]
Common Name (eg, your name or your server's hostname) []:vm.lan      ←★ ホスト名を入力して [Enter]
Email Address []:hostmaster@vm.lan      ←★ 管理者のメールアドレスを入力して [Enter]
[root@vm ~]#

2つのファイルが作成されます。

  1. /etc/pki/tls/certs/sserver.crt
  2. /etc/pki/tls/certs/server.key



サーバー用秘密鍵からパスワードを削除する

サーバー用の秘密鍵からパスワードを削除する理由は、Apacheを起動した時に毎回パスワードの入力を求めらるからです。
もっと違う方法があるのかもしれませんが、とりあえずこの方法で回避させています。

秘密鍵からパスワード削除

[root@vm ~]# openssl rsa -in /etc/pki/tls/certs/server.key -out /etc/pki/tls/certs/server.key
Enter pass phrase for server.key:      ←★ 上記の "秘密鍵 作成" で、設定したパスワードを入力して [Enter]
writing RSA key
[root@vm ~]#


秘密鍵の配置場所を移動する

そのままでもいいんですが、秘密鍵は別の場所に移動させておきます。

秘密鍵を移動

[root@vm ~]# mv /etc/pki/tls/certs/server.key /etc/pki/tls/private/
[root@vm ~]#


PEMファイルを作成する

pemファイルは、鍵になることも証明書になること、両方になることもできるファイルです。

PEMファイル作成

#----- 2つの証明書ファイルを結合して書き込む
[root@vm ~]# cat /etc/pki/tls/certs/server.crt /etc/pki/tls/private/server.key > /etc/pki/tls/certs/server.pem
[root@vm ~]#


#----- パーミッションを変更する
[root@vm ~]# chmod 0600 /etc/pki/tls/certs/server.pem
[root@vm ~]#


以上で、SSL/TLS証明書 の作成が終了です。

続けて、時刻同期など時刻関連の設定は下記ページをご覧ください。
CentOS-7/Chrony(時刻同期とntpdateで時刻手動同期)


[CentOS-7.6]


0 件のコメント:

人気記事

このブログを検索