• Ubuntuに関連したハード、ソフトの備忘録サイトです

サイトのセキュア化(https化)について(投稿記事確認中)

サイト管理者が経験した諸問題点についてこれから、記してまいります。

最初に、前提条件として、サーバーのSSL化に必要な各種の名前を例として挙げておきます。皆様の環境に合わせて読み替えて下さい。

➀Webサーバーの名前:www.it-ishin.com
②サーバーに置く公開秘密鍵(公開サーバーには通常、公開鍵を置きます)の名前:server.key
※公開秘密鍵の作成の仕方にはいくつもあり(パラメーターが複数あり)、これが第一の関門です。
③公開秘密鍵から作成し、認証局に送ってサーバー証明書を作成する際に必要なcsrの名前:server.csr
④認証局から送られてくるサーバー証明書の名前:combined.pem
※これは、認証局から送られてくるサーバー証明書と、認証局が公開している中間証明書(dvcacert.cerとしておきます)を結合する必要があるからです。通常、catコマンドで結合するように指示がありますが、ここに第二の問題点が潜んでいます。
➄OSとしてはUbuntu16.4LTS/18.04LTSを使うとともにWebサーバーとしてはnginxを用い、公開秘密鍵の作成にはopensslを使用。作業は/etc/ssl/private/デイレクトリイにて行う。普通は、該当サーバーにて管理者(root)になって行いますが、クライアントで行って、FTPでサーバーに転送しても大丈夫なようです。

さて、第一に公開秘密鍵の作成ですが、これは通常次のように行いますが、パラメーターの付け方で生成される鍵がことなります。必ず、認証局のサイトに記載されているマニュアル通りの方法で行う必要があります。

# cd /etc/ssl/private 
# openssl genrsa -des3 -out ./server.key 2048

ある認証局では以上でした。

ところが、別の認証局では次のようにパラメーターが異なっておりました。

# cd /etc/ssl/private 
# openssl genrsa -aes256 -out ./server.key 2048

server.key作成時にパスフレーズを求められますが、それはさておき、様々なオプションが 有ることと、生成されるserver.keyに基づいてsever.csr(国名や地方自治体名、組織名、部署、サイトのコモンネイム(=FQDNのことでした)、この場合はwww.it-ishin.com、などを付加した)server.csrというテキストファイルを作成し、これを認証局に送付して認証証明書が送られてきます。

当然、鍵の作り方が認証局指定のものとことなると、間違ったcsrファイルを送ることになり当然、送られてきたサーバー証明書とサーバー管理者が作成した公開秘密鍵との整合性が取れなくなります。なので、認証局のサイトに公開されているマニュアル通りにkeyファイルとcsrファイルを作成する必要が有ります。なお、csrファイルを認証局に送ると、認証局がサーバーが本当に正当なサイトなのかどうかを調べます。その調べ方も千差万別なので、サイトマニュアルをよく読むことが必要です。

次に、公開秘密鍵からパスフレーズを削除したファイルを作成し、その後でcsrファイルを作成します。パスフレーズを削除しておかないと、Nginxの再起動がややこしくなります。

# 秘密鍵からパスフレーズを削除
root@myserver:/etc/ssl/private# openssl rsa -in server.key -out server-nopwd.key 
Enter pass phrase for server.key:     # パスフレーズ
writing RSA key

こうして、削除したあとで、csrファイルを作成します。

root@myserver:/etc/ssl/private# openssl req -new -days 3650 -key server-nopwd.key -out server.csr 
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) [AU]:JP     # 国
State or Province Name (full name) [Some-State]:Tokyo     # 地域(都道府県)
Locality Name (eg, city) []:Suginami-ku     # 都市
Organization Name (eg, company) []:Private Organization   # 組織名
Organizational Unit Name (eg, section) []:System Section     # 組織の部門名
Common Name (e.g. server FQDN or YOUR name) []:www.it-ishin.com    # サーバーのFQDN
Email Address []:
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An Optional Compay[]:

メールアドレス以下は入力不要です。なお、コモンネームとはサーバーのFQDNのことです。ドメイン名のみを使って、バーチャル・ホスト全体をセキュア化(HTTPS通信化)するのは、通常、かなりコストがかかります。この時、作成されたcsrファイルを申し込み受付会社経由で、認証局に遅れますと、対応した証明書が申し込み受付会社経由で入手できます。ただし、普通はこの証明書と認証局会社のサイトで公開される「中間証明書」を結合して、サーバーに設置する認証証明書を作成します。通常は、catコマンドで結合されるだけですが、この結合ファイルが「へんなファイル」になっていて、第一に、次の処理を行う必要が有ります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA