CentOS 7/サーバー用秘密鍵・証明書作成


インストール諸設定データーベースWeb(apache)Mailetc
前書き
インストール
SSH(設定変更)
firewalld設定(ファイヤーウォール)
SELinux設定
起動レベル設定
NTP(時刻同期)
パッケージアップデート
リソース割り当て変更
logwatch設定
systemdについて
syslog(journal)について
追加パッケージインストール
MariaDB 5.5
(MySQL代替DB)
MySQL 5.7
Redis
mongoDB
apache 2.4
-httpd.conf
-Virtual Host
-mod_spdy
-mod_fcgid
Postfix 2.10
dovecot 2.2
VirtualBox
samba
Munin
ClamAV
rsyncによるバックアップ
Git
svn
memcached
Fluentd(td-agent)
DNSSSLPHPWeb(nginx)FTP
bind(内向け用)
Unbound
NSD
秘密鍵・証明書作成PHP 5.4
 -php-apc
 -ffmpeg
 -memcached
PHP 5.6
 -php-apcu
 -memcached
PHP 7.0
 -php-apcu
 -memcached
PHP 7.1
 -php-apcu
 -memcached
nginx
-インストール(rpm)
-インストール(ソース)
-Webサーバー設定
-リバースプロキシサーバー設定
-ラウンドロビン設定
vsftpd 3.0.2

#include(): No such page: SSL証明書について

自己署名証明書の作成

秘密鍵の作成

秘密鍵生成時には、2048bit を指定します。
秘密鍵を保護するためのパスワードが要求されますので入力します。(4文字以上8,191文字以内)
下記は DES3 方式で暗号化し 2048bit の 秘密鍵を作る例になります。
不規則性の高いランダムな文字列で可能な限り文字数が多いのを推奨します。

# openssl genrsa -des3 -out example.com.key 2048
Generating RSA private key, 2048 bit long modulus
......................................+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for example.com.key:
Verifying - Enter pass phrase for example.com.key:

※上記の example.com 部に "ドメイン名" などを指定すると管理がしやすくなります。

指定したファイル名 (上記例では example.com.key) で、秘密鍵ファイルが作成されます。
内容は下記のような文頭、文末からなる文字列のファイルになります。

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,741AD2C187D828D6

9w2362dvp1XirfQSWXWdLJBxriv/bqfr3b4N+x5ovW8vAazHc1GYxpf5C2lbIURz
 ・
 ・
 ・
 ・
dPjqDhbCPOPJwgHjSXC3NggsWvS8ns40wDP5EEYYCqIASyzhsT+LCQ==
-----END RSA PRIVATE KEY-----


CSR の作成

CSR (Certificate Signing Request) とは、証明書を発行するための証明書署名要求を言います。
公開鍵情報、組織名、所在地などの情報が含まれています。

作成した秘密鍵ファイルからCSRを生成します。

# openssl req -new -key example.com.key -out example.com.csr
Enter pass phrase for example.com.key:

※前述同様に上記の example.com 部に "ドメイン名" などを指定すると管理がしやすくなります。
続いて設問が表示されます。
未入力の箇所はそのままリターンで先に進んで下さい。

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]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:    

設問内容は順に

項目説明入力例
Country Name国名JP
State or Province Name都道府県名Tokyo
Locality Name市区町村名Shibuya
Organization Name企業(サイト)名Example Co.,Ltd.
Organizational Unit Name部署名IT Div.
Common Nameサイトの名前、サーバー名
IP アドレスで運用する場合は IP アドレスを入力する必要があります。
Blog Service
Email Address管理者メールアドレス(空欄可)admin@example.com

最後に証明書要求と一緒に送信される追加情報となります。

項目説明入力例
A challenge passwordパスワード(空欄可)
An optional company name別の組織名(空欄可)


CSRの内容確認

# openssl req -noout -text -in  example.com.csr

上記の表に記載している入力例で作成した場合、下記のような表示になります。
どんな内容なのか参考程度にどうぞ。

Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=Tokyo, L=Shibuya, O=Example Co.,Ltd., OU=IT Div., CN=Blog Service/emailAddress=admin@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a3:15:89:eb:cd:c7:8b:73:cd:ea:66:8f:aa:d3:
                    2d:42:45:02:ca:73:d3:50:15:13:39:55:08:f0:3f:
                    92:78:de:66:1e:99:59:c7:83:79:28:c7:59:9d:b8:
                    c3:82:28:02:64:e6:3a:56:40:72:6d:8a:14:33:1d:
                    aa:f8:e1:1b:fa:62:11:4d:b6:a5:1a:ce:4c:c6:e8:
                    5a:22:4f:33:fd:8f:ed:28:58:7f:d2:ea:56:ac:e3:
                    df:91:15:76:05:20:71:b5:d5:e4:f3:eb:de:ed:e1:
                    35:4a:0e:9b:58:5e:b7:ac:5b:b4:82:44:a8:7a:71:
                    85:e2:da:fa:03:39:85:fa:6d:03:b5:88:c2:54:9c:
                    85:8d:65:f2:5f:79:8f:b2:61:c3:56:57:c8:26:2e:
                    dc:80:c1:2c:3c:cf:5e:c6:d0:d6:e1:90:d2:6b:57:
                    e6:d9:ea:c3:0d:0c:c9:aa:fd:c0:65:0b:79:5e:44:
                    62:e5:b8:88:85:6f:3b:a0:a2:a8:3b:a5:80:31:85:
                    bb:6d:0b:0a:13:55:ab:0a:1a:37:c9:61:83:fb:9d:
                    7f:e6:8c:e5:12:f3:df:b8:b5:38:12:ad:e3:1b:92:
                    10:a3:f5:34:4c:74:3a:f5:61:44:bd:d4:38:4c:e9:
                    5a:1b:89:68:8d:00:b6:e7:9c:ac:fd:ac:cb:fd:24:
                    8f:2b
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         5b:25:06:4e:7a:ae:84:f6:26:2b:4d:d6:36:03:e2:bc:a8:02:
         65:b0:89:e5:8a:59:4b:20:41:96:51:d9:11:58:70:23:a6:97:
         52:3d:3b:20:f1:47:0f:c0:3f:bb:55:00:1a:e9:ac:18:44:5d:
         1d:eb:5d:4a:fd:43:cd:20:e9:39:36:ae:f7:78:63:dd:b3:30:
         1d:61:6d:e7:c6:60:55:c9:b0:a4:38:06:af:7d:c3:c0:a6:b5:
         80:44:92:9a:6e:a3:31:da:83:ff:3d:13:17:17:81:02:6d:a7:
         ca:f7:a4:db:a7:27:81:99:6a:3b:b7:49:9f:83:fe:66:36:9e:
         07:69:40:08:26:a8:56:69:35:52:81:3d:1f:05:85:f3:72:85:
         92:b6:81:81:23:c6:0c:51:ae:24:f0:ff:16:aa:d1:e8:cd:4a:
         1a:82:2e:7b:f4:a0:18:66:35:92:7d:a7:4e:61:50:39:76:24:
         db:a2:c2:e9:80:57:7f:89:87:52:19:a2:44:3c:54:25:95:8f:
         e7:c5:40:86:c2:53:09:94:8b:db:87:4c:7a:59:2b:a9:c8:fc:
         06:bf:a0:28:be:42:8b:30:be:0e:07:c1:1e:1e:eb:2c:ff:98:
         84:61:16:94:b1:0b:2f:46:45:72:d1:ee:ac:6e:19:c5:98:f0:
         60:bf:69:9e

デジタル証明書(CRT) の作成

通常は CA(Certification Authority : 認証局)が発行した証明書を使用しますが、自己署名証明書なので自分自身で作成します。
下記の例は有効期限が 365日 の証明書を作成する例になります。

# openssl x509 -in example.com.csr -days 365 -req -signkey example.com.key > example.com.crt

下記の内容が表示され秘密鍵を作成した時に指定したパスワードの入力を要求されます。
(subject の行については前述した例で作成した内容のため注意して下さい)

Signature ok
subject=/C=JP/ST=Tokyo/L=Shibuya/O=Example Co.,Ltd./OU=IT Div./CN=Blog Service/emailAddress=admin@example.com
Getting Private key
Enter pass phrase for example.com.key:


デジタル証明書(CRT) の内容確認

# openssl x509 -in example.com.crt -text

下記の内容が表示されます。
※一部割愛しています。

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 10882284598492384526 (0x9705a42f7dd7cd0e)
    Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, L=Shibuya, O=Example Co.,Ltd., OU=IT Div., CN=Blog Service/emailAddress=admin@example.com
        Validity
            Not Before: Aug 10 18:55:46 2014 GMT
            Not After : Aug 10 18:55:46 2015 GMT
        Subject: C=JP, ST=Tokyo, L=Shibuya, O=Example Co.,Ltd., OU=IT Div., CN=Blog Service/emailAddress=admin@example.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a3:15:89:eb:cd:c7:8b:73:cd:ea:66:8f:aa:d3:
                    2d:42:45:02:ca:73:d3:50:15:13:39:55:08:f0:3f:
                     ・
                     ・
                     ・
                    5a:1b:89:68:8d:00:b6:e7:9c:ac:fd:ac:cb:fd:24:
                    8f:2b
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha1WithRSAEncryption
         18:99:b6:00:27:56:77:7e:8f:59:0e:73:07:dc:85:49:be:13:
         1c:78:1f:26:b8:da:6e:20:3f:8c:82:8b:57:1c:12:5a:51:f7:
          ・
          ・
          ・
         b6:5e:69:dc:b9:0a:95:d0:41:54:1a:d1:df:ba:69:59:fe:24:
         58:5c:c9:a3
-----BEGIN CERTIFICATE-----
MIIDqDCCApACCQCXBaQvfdfNDjANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMC
SlAxDjAMBgNVBAgMBVRva3lvMRAwDgYDVQQHDAdTaGlidXlhMRkwFwYDVQQKDBBF
  ・
  ・
  ・
WRxFuB8OBe7EWqpatAQy8J+OQ0Z3TXGJJSWTZMxUFE9D0yRjg5ALsVFw2HAaMant
EDmqk+5Ltl5p3LkKldBBVBrR37ppWf4kWFzJow==
-----END CERTIFICATE-----

バックアップ

作成した 秘密鍵ファイル、および デジタル証明書ファイルは大事なものです。
万が一、サーバーから誤消去、紛失してしまっても大丈夫なように別メディアなどに保管しておくことをおすすめします。
とくに改ざん、第三者への漏洩がないように厳重な管理が必要です。


証明書の再発行




Last-modified: 2015-04-23 (木) 18:06:47 (1277d)