WebサイトをSSL化(https)するには(SSL対応の)Apache と openssl のインストールが必要です
Webサイトが「https」から始まっている場合はSSL/TLSプロトコルを利用した暗号化通信が行われています
(SSLとはSecure Sockets Layer、TLSとは Transport Layer Securityの略です。)
openssl とはUNIX上でSSL/TLSプロトコルを利用した暗号化通信を行うソフトで、Apacheから利用できるソフトです。
貴サーバー上で Apache と openssl のインストールが必要です
なお、私が(FreeBSD上で)使用したバージョンは
WWWサーバー(Apache22)は Apache/2.2.25 を使いました。
opensslのバージョンは現在は ver1.1.0f を使っています。
WebサーバーをSSL対応にして、httpsで通信する為には SSL証明書が必要です。
SSL証明書は認証局が発行(有料)します。
認証局にSSL証明書(crtファイル)を発行して貰うためには、CSRファイルを準備する必要があります。
CSRファイルは、貴サーバー上でopensslのコマンドを使って秘密鍵の作成と一緒に作成します。
秘密鍵とSSL証明書(crtファイル)はApcheのSSL設定に必要です。
CSRファイルは認証局がSSL証明書(crtファイル)を発行する際に必要です。
CSRファイル、秘密鍵の作製方法
# cd /etc/ssl
# openssl genrsa -aes256 2048> domain-name.key
# openssl req -new -key domain-name.key -out domain-name.csr -sha256
# openssl rsa < domain-name.key> domain-name_withpass.key
ROOTで、/etc/ssl ディレクトリへ移動(無ければ作成)して下さい。
# cd /etc/ssl
opensslで秘密鍵とCSRファイルを生成しますが、
その前にパスフレーズ(パスワードの様なもの)を決めて、忘れない用にしておいて下さい。
秘密鍵を作成します。 (青字が変更部分)
# openssl genrsa -aes256 2048> domain-name.key
( パスフレーズの入力・再入力を求められます。)
( -aes256の部分は -des3他 でもOKです )
( domain-name.keyの部分は 秘密鍵 の名前です。 任意の英数字でOKです。 )
アクセス権を変更します。
# chmod 400 domain-name.key
秘密鍵からCSRファイルを生成します。
# openssl req -new -key domain-name.key -out domain-name.csr -sha256
( domain-name.csrの部分はCSRファイルの名前です。 任意の英数字でOKです。 )
( CSRファイル作成時にはパスフレーズ以外に多くの大事な質問がありますので慎重に入力して下さい。サーバー証明書に書き込まれます。)
Country Name (2 letter code) [**]: JP
State or Province Name (full name) [***]: Hyogo # 都道府県(登記されている住所)
Locality Name (eg, city) [***]: Kobe # 市or区(登記されている住所)
Organization Name (eg, company) [***]: ooo Inc. # 会社名 又はwhoisの登録名
Organizational Unit Name (eg, section) [***]: # 部署名(省略可)
Common Name (eg, your name or your server's hostname) [***]: www.(** your domain-name **) # SSL化するドメインのホスト名
Email Address []: # メールアドレス(省略可)
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []: #(省略可)
An optional company name []: #(省略可)
(後述しますが、Webサーバーの再起動時に毎回求められるパスフレーズの入力をしなくても起動する様に、私はパスフレーズ付きの秘密鍵を生成しています。)
# openssl rsa < domain-name.key> domain-name_withpass.key
( パスフレーズの入力を求められます。)
任意の認証局サイトで、任意のSSL証明書を選択します。
認証局は「SSL認証局」などのキーで検索して、お好みの認証局を選んで下さい。
SSL証明書には3種類(DV認証、OV認証、EV認証)あります。
◎にじゅうまる DV認証 はドメイン名の使用権のみを認証します。
◎にじゅうまる OV認証 はドメイン名の使用権の認証に加え、申請した組織の実在性を認証します。
◎にじゅうまる EV認証 はドメイン名の使用権の認証に加え、申請した組織の実在性を登記簿謄本等や第三者機関のデータベース等により法的・物理的に組織の実在性を確認し認証します。
SSL証明書の発行申し込みに際し、申し込みが間違いでは無いかをメールで確認されます。
そのためにadmin@(your domain-name) のメールアドレスで受信出来るようにしておいて下さい。
そして、認証局サイトで確認メールの送信先として admin@(your domain-name) を選択して下さい。
(最近はメールでの確認ではなく、認証局指定のフォルダーを作製し、そのフォルダーに認証局指定のファイルをコピーする様に指示され、認証局からそのファイルの存在を確認するという確認方法も使われているようです。)
順番は前後するかも知れませんが、次頁で、CSRファイルを貼り付ける様に促されます。
次は認証局へのお支払いです。
認証局への支払いの確認が終われば、admin@(your domain-name) 宛にメールが届き、
SSL証明書(crtファイル)や中間証明書が送られて来ます。
(又はSSL証明書(crtファイル)や中間証明書の在るurlを教えてきます。)
そのSSL証明書(crtファイル)や中間証明書をファイルにセーブして、他のファイルと同じフォルダー(/etc/ssl/)に保存して下さい。
これで /etc/ssl フォルダーには
domain-name.key
domain-name.csr
domain-name_withpass.key
domain-name.crt
中間証明書ファイル
の5つのファイルが在る筈です。
これら5つのファイルはroot のみが読むことのできるディレクトリに置く必要がありますので、/etc/ssl の属性を 700 に変更しておきます。