Web
サーバを運用していると「 https でアクセスしたい」と言われることがよくあります。
しかも、無料で・・・。
証明書 発行してもらうのにもお金かかるんですけど・・・。
オレオレ 証明書 ならお金もかからず、 HTTPS
の設定もできるってことで、オレオレ 証明書 を作成し、WEBサーバに設定した時の手順をまとめました。もし、同じ悩みを抱えている方がいれば参考にしてもらえればと思います。
環境
今回オレオレ 証明書 の環境は以下の通りです。
- OS : CentOS 6.x
- WebServer : Apache 2.2
証明書 作成手順
mod_sslインストール
mod_ssl
をインストールします。これがないと SSL
が使えません。
$ sudo yum -y install mod_ssl
証明書作成
証明書の作成に必要な秘密鍵を作成します。
まず、秘密鍵を配置したい場所へ移動します。
$ sudo cd /etc/pki/tls/certs/
そこで秘密鍵を作成します。
$ sudo make [ドメイン名].key
$ sudo openssl rsa -in [ドメイン名].key -out [ドメイン名].key
この時[ドメイン名]には FQDN を設定します。
次に、 CSR
ファイルを作成します。
$ sudo make [ドメイン名].csr
上記コマンド実行すると下記のようなメッセージが出るので、それぞれ値を入力していきます。
Country Name:[国コード]
State or rovince Name:[県]
Locality Name:[市]
Organization Name:[組織名]
Organizational Unit Name:[部署名]
Common Name:[ドメイン名]
Email Address:[メールアドレス]
A challenge password:空欄
An optional company name:空欄
Country Name には国コードを設定します。
日本は「 JP
」になります。
State or rovince Name には都道府県名を設定します。
「 Tokyo
」とか「 Osaka
」とか。
Locality Name には市区町村名を設定します。
「 Machida
」とか。
Organization Name には組織名や会社名を設定します。
個人の場合は特に入力しなくても大丈夫です。
Organization Unit Name には部署名を設定します。
個人の場合は特に入力しなくても大丈夫です。
Common Name には秘密鍵を作った時のファイル名、つまり、 FQDN
を設定します。
Email Address にはメールアドレスを設定します。
A challenge password は空欄のままでOKです。
An optional company も空欄のままでOKです。
これで CSR
ファイルの作成が完了します。
最後に、証明書(公開鍵)を作成します。
ここでは約10年間有効な証明書を作成したいと思います。
有効期間を長く設定してるのは、有効期限が切れて証明書を再作成する手間が惜しいからです。
ここは状況に応じて臨機応変に変更すれば良いと思います。
$ sudo openssl x509 -in [ドメイン名].csr -out [ドメイン名].crt -req -signkey [ドメイン名].key -days 3650
これで証明書(公開鍵)の作成が完了しました。
Apache の設定
最後に Apache
の設定を行い、 Web サーバが先ほど作成した証明書を利用できるようにします。
ssl.conf の編集
mod_ssl をインストールすると「 /etc/httpd/conf.d 」に ssl.conf というファイルが作成されると思いますので、
そのファイルを編集していきます。
$ sudo vim /etc/httpd/conf.d/ssl.conf
~省略~
SSLCertificateFile /etc/pki/tls/certs/[ドメイン名].crt
~省略~
SSLCertificateKeyFile /etc/pki/tls/certs/[ドメイン名].key
~省略~
それぞれ ssl.conf というファイルの「106行目」「113行目」あたりに上記の記述があると思いますので、先ほど作成したファイル名を設定します。
設定が完了したら忘れずにApacheを再起動します。
# /etc/rc.d/init.d/httpd restart
これで、Web サーバでオレオレ証明書が使えるようになります。
最後に
オレオレ証明書の作り方を覚えておけば個人のサイトや検証環境などでも活用できるので、覚えておいて損は無いと思います。
コメント