SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

StartSSLの無料サーバー証明書を使う

問題

無料だというStartSSLのサーバー証明書を使ってみたい!

free 0円 無料 StartSSL

答え

StartSSLに会員登録する

https://www.startssl.com/ の、Free(Class1)をクリック

startssl-1

Certificate Control Panel をクリック

startssl-2

Sign-up をクリック

startssl-3

個人情報を入力(画像は入力例)

startssl-4

メールが届き、確認用のキーが発行される

startssl-5

メールで届いたキーを入力する

startssl-6

しばらく待つと、認証用の証明書のURLと確認用のキーが書かれたメールが届く

startssl-7

メールのURLにアクセスする。
また何か入力するような画面になったら、先ほどのメールのキー(赤いところ)を入力して次の画面へ。

ログイン用証明書発行の画面になる(ログインはIDとパスワードではなくて、証明書での認証となる)

startssl-8

Installクリック

startssl-9

Firefoxだと以下のようなダイアログが出た

startssl-10

ここまでくれば会員登録完了。

startssl-11

ここでいったん終了してまたログインするときは、Sign-upの画面のときの左側のAuthenticateの方に進んで、個人証明書を提示するとログインできる。

今作業したブラウザ以外のブラウザでログインしたいときは、今インストールされた個人証明書をエクスポートして、別のブラウザにインポートして使うとよい。

以下、管理画面にて操作。

サーバー証明書を取得する – ドメインの所有者の確認

サーバー証明書を取得するにあたって、ドメインの所有者であることを示さねばならない。そのドメインのメールアドレスか、たぶんwhoisなどに登録してあるメールアドレスが受信できるならクリアできる。

Validations Wizard で、Domain Name Validation を選択して、Continue

startssl-12

ドメイン名を入力。サブドメインの証明書が欲しいときでも、まずはトップレベルのドメインから。

確認用コードをどこに送ればよいかメールアドレスの選択画面になるので、postmaster@ドメイン名、webmaster@ドメイン名などから、受信可能なものを選択。

確認用コードの書かれたメールが届く

確認画面に入力する

startssl-19

ドメインの所有者の確認が完了

サーバー証明書を取得する – 証明書の発行

Certificates Wizard のタブで、Web Server SSL/TLS Certificate を選択して、次へ

startssl-21

秘密鍵の作成が管理画面でできる。管理画面で秘密鍵を作ったら、その流れで証明書までできあがる。いずれも画面のテキストエリアに表示されるので、メモ帳などにコピーしておき、サーバーに持っていけるようにしておく。

自分のサーバーで秘密鍵を作ってもよい。管理画面ではSkipで次に進むとCSRを貼り付ける画面になるので、自分で作るなら、CSRまで作って次に進む。

# openssl genrsa -des3 -out example.key 2048
Generating RSA private key, 2048 bit long modulus
...........................+++
.............................................+++
e is 65537 (0x10001)
Enter pass phrase for example.key: (パスワードを決めて入力)
Verifying - Enter pass phrase for example.key: (パスワードを再入力)
# openssl req -new -key example.key -out example.csr
Enter pass phrase for example.key: (秘密鍵を作るときに入力したパスワードを入力)
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) [GB]:JP
State or Province Name (full name) [Berkshire]:Gifu
Locality Name (eg, city) [Newbury]:Gifu
Organization Name (eg, company) [My Company Ltd]:.
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:(ホスト名)
Email Address []:test@example.jp

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

サブドメインの追加

サーバー証明書取得(テキストエリアに表示される)

サーバー証明書を使う

Webサーバー(apache)に取得したサーバー証明書をインストールする。

いろいろと準備をしてきたが、最終的に用意するものは以下のとおり。

RedHat系ならこの辺に秘密鍵を置き

# vi /etc/pki/tls/private/example.key

apache起動時にパスワードを聞かれないようにするには、以下のようにパスワードを解除し、

# openssl rsa -in example.key -out example.key

ルート証明書、中間証明書をダウンロードし、

# cd /etc/pki/tls/certs
# wget https://www.startssl.com/certs/ca.pem
# wget https://www.startssl.com/certs/sub.class1.server.ca.pem

サーバー証明書を置き

# vi /etc/pki/tls/certs/example.crt
(StartSSLの画面でテキストエリアに表示された文字列を貼り付け)

パーミッションを400などにしておき

# chmod 400 /etc/pki/tls/private/example.key
# chmod 400 /etc/pki/tls/certs/ca.pem
# chmod 400 /etc/pki/tls/certs/sub.class1.server.ca.pem
# chmod 400 /etc/pki/tls/certs/example.crt

apacheのsslの設定のところに書く

SSLCertificateFile /etc/pki/tls/certs/example.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.key
SSLCertificateChainFile /etc/pki/tls/certs/sub.class1.server.ca.pem
SSLCACertificateFile /etc/pki/tls/certs/ca.pem

ざっとこんな具合です。

関連するメモ

コメント