FTPS (FTP over SSL) (2) SHA-2自己署名入りサーバ証明書を作成する

FileShelf Plus FTPS対応版の動作確認をした際に、自己署名入りサーバ証明書を作成しましたので、その手順を記録しておきます。

SSLサーバ証明書と言えば、SHA-1署名アルゴリズムの脆弱性が新たに発覚したことから、各認証局では昨年12月頃からSHA-1証明書の新規発行を停止しており、SHA-1で運用中のサイトについても、SHA-2証明書への移行を促しています。

SHA-1証明書を使用し続けていると、2016年からアドレスバーに警告表示がされるようになり、2017年以降はSSL通信が拒否されることになります。

ちなみに、SHA-1の利用を廃止してSHA-2に移行しなければならないのは、ルート証明書更新プログラムに参加している証明機関(CA)から発行されている証明書となっています。

個人や社内で利用しているプライベート認証機関はこの措置の対象ではないので、つまり自己署名入り証明書・通称オレオレ証明書は対象外ということになります。

ということなのですが、新たに自己署名入り証明書を作成するのでSHA-2証明書を作成することにします。

秘密鍵の生成

openssl genrsa -aes128 -out mycert_key.pem 2048

genrsa    RSA形式の秘密鍵を作成する
-aes128   128ビットAES方式で暗号化する
2048      2048ビットの鍵にする

Generating RSA private key, 2048 bit long modulus
......+++
..........................................+++
e is 65537 (0x10001)
Enter pass phrase for mycert_key.pem:
Verifying - Enter pass phrase for mycert_key.pem:パスフレーズを入力する(*1)

出力されたファイルmycert_key.pem(*2)の内容は

-----BEGIN RSA PRIVATE KEY-----
...............................
-----END RSA PRIVATE KEY-----

CSRの作成

CSR(Certificate Signing Request)とは、SSL証明書を作成する元になる情報(組織名、サーバーアドレスなど)です。

openssl req -new -key mycert_key.pem -sha256 -out mycert_csr.pem

req       CSRファイルを作成
-new      新規にCSRを作成する
-key      *2の秘密鍵ファイルを指定する
-sha256   署名ハッシュアルゴリズムとして SHA-2 を使用する。

Enter pass phrase for mycert_key.pem:*1のパスフレーズ
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 ...国名
State or Province Name (full name) []:Tokyo ...都道府県名
Locality Name (eg, city) [Default City]:XXXXX ...市町村名
Organization Name (eg, company) [Default Company Ltd]:XXXXX ...組織名
Organizational Unit Name (eg, section) []:XXXXX  ....部門名
Common Name (eg, your name or your server's hostname) []:fileshelfplus.com ...サイトの名前
Email Address []:何も入れずにEnter
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:何も入れずにEnter
An optional company name []:何も入れずにEnter

出力されたファイルmycert_csr.pem(*3)の内容は

-----BEGIN CERTIFICATE REQUEST-----
    ................................
-----END CERTIFICATE REQUEST-----

証明書(公開鍵)の作成

CA(認証局)が発行した証明書に相当する自己デジタル証明書になります。

openssl x509 -req -days 365 -sha256 -in mycert_csr.pem -signkey mycert_key.pem -out mycert_crt.pem

x509      X.509 形式の証明書を作成
-req      CSRファイルを入力し署名して出力する
-days     証明書の有効期限を日数で指定する
-sha256   署名アルゴリズムとして SHA-2 を使用する
-in       *3のCSRファイルを指定する
-signkey  *2の秘密鍵ファイルを指定する

Signature ok
subject=/C=JP/ST=Tokyo/L=XXXXX/O=XXXXX/OU=XXXXX/CN=fileshelfplus.com
Getting Private key
Enter pass phrase for mycert_key.pem:*1のパスフレーズを入力する

出力されたファイルmycert_crt.pemの内容は

-----BEGIN CERTIFICATE-----
................................
-----END CERTIFICATE-----

証明書(公開鍵)を確認してみる

openssl x509 -text < mycert_crt.pem
Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 10104994516558139701 (0x8c3c26f968b7d135)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=JP, ST=Tokyo, L=XXXXX, O=XXXXX, OU=XXXXX, CN=fileshelfplus.com
        Validity
            Not Before: Jan  2 08:49:09 2016 GMT
            Not After : Jan  1 08:49:09 2017 GMT
        Subject: C=JP, ST=Tokyo, L=XXXXX, O=XXXXX, OU=XXXXX, CN=fileshelfplus.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c6:a9:df:d8:5c:2d:2c:50:c7:bd:55:f5:1f:e8:
                    .............................................
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         63:a3:10:93:df:1a:00:73:b4:9e:f1:9c:92:60:86:e6:76:ca:
         ......................................................
-----BEGIN CERTIFICATE-----
MIIDbDCCAlQCCQCMPCb5aLfRNTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJK
................................................................
-----END CERTIFICATE-----

SHA-2自己署名入りサーバ証明書が出来ました。


環境
CentOS release 6.5 (Final)
OpenSSL 1.0.1e-fips 11 Feb 2013

シェアする

  • このエントリーをはてなブックマークに追加

フォローする