最重要事項(2017/01): 最初に Google Docs の WoSign and StartComs を確認して下さい。
https://docs.google.com/document/d/1C6BlmbeQfn4a9zydVi2UvjBGv6szuSB4sMYUcVrR8vQ/
認証局(CA:Certification Authority)をどう理解しているのか不思議です
2008/11/05
2010/02/10
update
StartCom(認証局)からSSL証明書を発行してもらうための条件
●1年間無料で使えるフリーSSL証明書は、Class 1 の証明書。
www
用のSSL証明書(SSL/TLS Web Server Certificate) ※1
e-mail用のクライアント証明書(S/MIME and Client Certificate)
●有効なメールアドレスを持っている。
●自分のドメインを持っている。(例、my-domain-name )
[注意事項: 文中で説明の都合上、my-domain-name に相当する部分を example.org としている箇所があります]
● {webmaster,hostmaster,postmaster}@my-domain-name の何れかのアカウントでメールを受信できる。
UNIXでは、これらのアカウントは /etc/aliases を利用して、 root アカウントへのメールに変換されている。
※1 S/MIME (メールクライアントに証明書を登録し、メールサーバーにアクセスする)を使わず、メールサーバで、SSL/
TLS による暗号化を行う場合は、www 用の証明書と同等の方法で mail 用の証明書を発行し使用します。
補足: Firefox(ブラウザ)、Thunderbird(メールクライアント)は、StartCom(CA)が正規の認証局として登録済みなので、
この証明書を使用したサーバに接続する時に、SSLの警告を出しません。 (2010/02/10 IE、Opera も対応)
StartCom のフリーSSL証明書の( eshop.cryst.tv )利用例
本手順で発行した "Web Server SSL/TLS Certificate" を使ってサイトを構築した例
0、既存の環境の大きな変更無しに、新たにインターネット上にショッピングサイトを追加します。
ネットショップに代表されるEC(Electronic Commerce)では、SSLでの情報保護は不可欠です。
1、インターネット接続用のルーター配下に新たにコンピュータを用意します。
2、新規コンピューターの Web サーバーは、http:8080、https:9443 で Listen します。
3、新規コンピューターに 下記手順で秘密鍵、証明書、CAを登録 します。
4、新規コンピューターに、SSLを使用するアプリとして、osCommerce をインストールします。
5、既存の Web サーバーに、eshop.cryst.tv へのアクセスを 新規コンピューターのポート8080
へのアクセス (eshop.cryst.tv:8080) にリダイレクトする設定を追加します。
(複数のIPアドレスがある場合は、DNSで新しいアドレスを割り当てます。80,443の変更は不要)
6、新規コンピューターでは、管理画面、ユーザーアカウントや購買の情報がSSLで保護されます。
7、eshop.cryst.tvに接続し、ログイン 新しいアカウントを選択すると SSL が有効になります。
* firefox、新しいInternet Explorer なら警告無しにSSL接続ができます。
* 規模が大きくなったら、上位の証明書(有償)や、SSLアクセラレータの導入をご検討下さい。
逆に、コンピュータの高性能化により、規模が小さい場合はサイト全体をSSLで保護してしまう
事も検討対象となりえます。 ( osCommerce なら、/catalog ディレクトリーへの全アクセス)
SSL証明書の発行手順 (Web Server 用のSSL証明書)
1、 StartCom のサイトにアクセス(login)する為の個人証明書の発行処理を行う。
Windows Vista + Firefox 3.0.3(JavaScriot、Cookieともに有効) を使用。
(登録処理が失敗したので、"NoScript" add on を一時削除し、登録完了後に再度インスト-ル。 )
発行された個人証明書は、firefox に登録されるので、必ず別媒体にバックアップしておく 事。
● 認証局で用意しているユーザー登録用の Web ページ にアクセスアクセスします。
● 必要事項(住所、電話、氏名、メールアドレス)を入力します。 フリーメール(hotmail、yahoo mail等) は使用できません。
(処理が完了するまで、ブラウザーに逐次表示されていく 画面での操作が必要です)
● 上記で登録したユーザーのメールアドレスに、認証用のコードが記載されたメールが届きます。
● ブラウザー画面の、確認コードの入力フィールドに、メールで送られてきたコードを入力し、処理を継続します。
● 発行者側で入力情報の正当性確認をし、クライアント証明書を発行する URL と 確認コード をメールで送ってきます。
(6時間以内にメールするとのメッセージを表示後、ブラウザーの表示画面は、初期画面に戻ってしまいます。)
● 1、2時間後には 登録が承認された趣旨のメールが届きますので、メール中で指定されている URL にアクセスし、
認証用のコードのコードを入力すると、個人証明書が作成されブラウザにインストールされます。
● ブラウザーにインストールされた個人書証明書のバックアップをとります。
Firefox 3: ツール ⇒ オプション を選択。 オプション画面(詳細)の暗号化タブから証明書を表示を選択。
あなたの証明書タブを選択し、証明書名と発行者から該当する証明書を選択 バックアップをクリックし保存する。
バックアップ時のパスワードは決して忘れないようにする。証明書の読み込時にパスワードが要求されます 。
2、StartCom のサイトに login (sign up) し、"Validations Wizard " でSSL証明書の発行を希望する自分のドメインの正当性確認
処理を行います。
これは、ドメインの管理アカウントとして必要な、webmaster、hostmaster、postmaster の何れかのメールアドレスに、StartCom から
確認用のコードを送付し、web 経由で StartCom に送り返すことで、利用者により登録されたドメインが実際に存在し有効である事と、
管理アカウント宛てのメールを見る事が出来る事で、ドメインと登録者の正当性が確認されます。
● " Validations Wizard " タブを選択します。
● タイプから "Domain Name Validation" を選択します。
Type:
Domain Name Validation
● ドメイン所有権の検証のためのEメールアドレスを選択します。 (例、example.org の場合)
選択したユーザーのメールアドレスに、認証用のコードが記載されたメールが届きます。
● ブラウザー画面の、検証コード(Verification Code)の入力フィールドに、メールで送られてきたコードを入力し処理を継続します。
●Validation Success の画面が表示されたら、 "Finish»» "
をクリックし処理を完了します。
3、"Validations Wizard" Certificates Wizard " で、SSL証明書の発行を行います。 (
認証局で全てのデータを作成する場合 )
画面の指示に従って、必要事項を入力していくと、SSL証明書が発行されます。
昨年は、認証局で秘密鍵と証明書署名リクエストを作成し、認証局がここで作成された証明書署名リクエストを受け取り、署名
した証明書を利用者に提供する方法が標準でした。(これは、認証局が利用者の秘密鍵を入手できてしまうことを意味します)
今年は、利用者が作成し用意した証明書署名リクエスト(利用者が秘密鍵と証明書署名リクエストを作成し、認証局に証明書
署名リクエスト【csr file】のみを送付)にも署名する方法が選択可能になったので、こちらの方式を利用します。
公開鍵方式では、秘密鍵の扱いが非常に重要になります。もしこの鍵が外部に漏れてしまうと、暗号化された通信は第三者
によって復号できてしまうので、暗号化の意味を持ちません。
(サーバとクライアントが、SSL接続する為の暗号強度を決定するネゴシエーションの過程で、最弱の暗号化が選択される可能性が
ある事も考慮する必要があります。 特に第三者が用意した偽のサーバーに接続させられた場合、意図的に最弱の暗号化を、選択
される可能性が高いと言えます。ゆえに、SSLの通信をする場合であっても、直接パスワードをインターネット経由で送る事は避ける
べきで、パスワードの代わりにパスワードのメッセージダイジェスト(md5等)を交換する方式の採用を推奨します。 )
秘密鍵と証明書署名リクエストを自分で作成する場合
4、秘密鍵と証明書署名リクエストの作成には、openssl を使用しますので、openssl が使用可能な環境を用意します。
Windows環境:
cygwin (全てをインストールしておくと便利です) のインストールを行えば、openssl が使用可能になります。
unix環境: 通常 openssl のバイナリーパッケージが用意されていますので、yum 等のコマンドでインストールします。
5、秘密鍵の生成をします。 (2048bit の鍵を指定することも可能だが、諸般の事情により今回は 1024bit を指定 )
パスフレーズ付きの秘密鍵の生成
Ex. openssl genrsa -des3 -out my-domain-name-with-passwd.key 1024
パスフレーズ無しの秘密鍵の生成
Ex. openssl genrsa -out my-domain-name.key 1024
6、秘密鍵を使って、証明書署名リクエスト (CSR)
の 生成をします。
Ex. openssl req -new -key my-domain-name-with-passwd.key -out my-domain-name.csr
csr ファイルには、利用者の個別情報も入力します。 参考例を以下に示します。 茶文字部分 が必須項目です。
証明書が Class 1 (multi ではない)なので、Organizational Unit Name は省略しています。
:
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Chiyoda-ku
Organization Name (eg, company) [My Company Ltd]: example Ltd
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www. example.org
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
7、 "Validations Wizard"
Certificates Wizard " で、SSL証明書の発行を行います。
3 の手順との違いは、 "Generate Private Key” で 秘密鍵 の作成をスキップする事です。
"Submit Certificate Request(CSR)" で自分自身で作成した、証明書署名リクエスト(CSR)を textbox に貼り付けてください。
CSRは、スペース、改行も含めデータとして作成されていますので、一切の変更を加える事なく textbox に入力するには、
Copy and Pasteするのが良い方法です。
"Continue»» "
すれば、署名付きSSL証明書が発行されますので、先ほど同様、変更が加わらない状態で保存して下さい。
(ここでは、ファイル名を my-domain-name.crt として保存します
)
● StartCom に login し、"Validations Wizard"
Certificates Wizard " タブを選択します。
● Certificate Target: に "SSL/TLS web server certificates" を選択します。
( "Web Server SSL/TLS Certificate" )
● "Generate Private Key"
の画面では、StartCom のサイトで秘密鍵(Private Key)を作成する処理をスキップします。
● Submit Certificate Request (CSR) 画面の textbox に、6
で作成した証明書署名リクエスト(CSR:my-domain-name.csr )
の内容を Copy and Paste します。
● 証明書署名リクエストの内容が表示されますので、登録内容に間違いが無いことを確認します。
● "Validations Wizard "
を使って、正当性確認処理をへて登録(30日間有効)されたドメインの中から、
SSL証明書を発行してもらうドメインの、トップターゲットドメイン を選択します。
www.example.org を例にとると、 www 部がサブドメイン、 example.org 部がトップドメイン。
2010/02/10
● 続けて、サブドメインを指定します。
Ready Processing Certificate
We have gathered enough information in order to sign your certificate now.
The common name of this certificate will be set to www.example.com .
The certificate will have the following host names supported:
example.org
www.example.org
Please click on Continue in order to process the certificate.
Additional Check Required!
You successfully finished the process for your certificate. However your certificate request has been marked for approval by our personnel. Please wait for mail notification from us within the next 3 hours (the most). We might contact you for further questions or issue the certificate within that time period. Thank you for your understanding!
登録た CSR をStartCom が評価し、問題が無ければ "Verification Email " で
登録したアカウントに証明済みの crt を生成した趣旨のメールが送られてきます。
● 再度、StartCom のサイトに login し、"Tool Box " tab を選択します。
● サイドメニューから、"Retrieve Certificate " を選択します。
次に、先に送った CSR の URL を選択し"Continue »» " をクリックします。
Retrieve Certificate
This tool allows you to retieve issued certificates including the
ones which have been held back for additional checks.
Labels marked green have not been retrieved yet.
For client (S/MIME) and smart card logon certificates make sure
you use the same browser which was used to create the request.
Certificate:
www.example.org
Retrieve Certificate
You must have the corresponding private key or request pending in
order to install the certificate.
Make sure to backup the certificate including the private key to
some external media.
Certificate:
Textbox に表示された署名付きSSL証明書(crt)を保存します。
● 続けて、サブドメインを指定します。(必ずこの指定が必要なため、運用上の工夫が必要になる場合があるかも知れません)
● ここまでの処理が正しく行われたら、"Continue »» " をクリックすると署名付きSSL証明書(crt)の作成が開始されます。
● 署名付きSSL証明書(crt) が作成され、 textbox に表示されます。
textbox 内のデータを my-domain-name.crt
としてASCII ファイル形式で保存します。
Save Certificate
In the textbox below is your PEM encoded certificate.
Copy and paste the content into a file and save it as ssl.crt .
Make sure, that you do not alter the content and you did not add any spaces! Save it in ASCII format (plain text).
以上で、署名付きSSL証明書(crt)取得が完了しました。
8、SSL証明書が発行されたら、Web サーバー (Apache 2.x) に証明書を登録する準備をします。
まず、以下のファイルが必要になるますので全てそろっていることを確認します。
秘密鍵 (my-domain-name-with-passwd.key or
my-domain-name.key )
(パスフレーズ付きの鍵の場合は、SSLPassPhraseDialog
ディレクティブを使って password を読み込む)
署名付きSSL証明書 (my-domain-name.crt )
ルート認証局 (CA)の証明書 (ca.crt :
http://www.startssl.com/certs/ca.crt)
中
間認証局(sub.ca) の証明書 (sub.ca.crt :
http://www.startssl.com/certs/sub.class1.server.ca.crt)
(証明書署名リクエスト(CSR)に、実際に署名しているのは、この中間認証局)
秘密鍵のパスフレーズを削除する場合
Ex. openssl
rsa -in my-domain-name-with-passwd.key
-out my-domain-name.key
Web Server (apache Ver 2.x) へのSSL証明書の登録
1、apache Ver 2.x の SSL関連の設定ファイルと設定
設定変更後は、サービスの再起動をする事。(/sbin/service httpd restart )
設定ファイル:
/etc/httpd/conf.d/ssl.conf
設定項目:
SSLPassPhraseDialog
exec:/etc/pki/tls/private/showPasswd.sh
※2
SSLCertificateFile
/etc/pki/tls/certs/my-domain-name.crt
SSLCertificateKeyFile
/etc/pki/tls/private/my-domain-name-with-passwd.key
※2
SSLCertificateChainFile
/etc/pki/tls/certs/sub.ca.crt
※3
SSLCACertificateFile
/etc/pki/tls/certs/ca.crt
※3
各ファイルは /etc/pki/tls/{private,certs} に限定される必要は無く、管理者の都合で任意の場所を指定しても良い。
/etc/pki/tls/private 配下のファイルは、 root のみが読み込みと実行出来るように設定しておく。
(例、 chmod 700 /etc/pki/tls/private; chmod 400 *.key; chmod 500 *.sh )
ルート認証局の証明書
ca.crt 、
中間認証局の証明書
sub.ca.crt
はリンク先の StartCom のサイトからダウンロード。
Firefox Ver. 3.x ではセキュリティ要件が厳しくなり、サーバーに正しく中間認証局の登録がなされていないと証明書の
正当性が確認できないのでエラー (sec_error_unknown_issuer )&
nbsp;を出し Webページの代わりに警告画面を表示し、
ページへのにアクセスが制限される。
ただし、警告画面に表示される ”例外として扱うこともできます...” を選択する事で、閲覧不可の回避は可能。
※2 パスフレーズを削除した秘密鍵を使用する場合は、以下の設定で良い。
SSLPassPhraseDialog builtin
SSLCertificateKeyFile /etc/pki/tls/private/my-domain-name.key
2010/02/10
※3 ダウンロードした CA ファイルが DER 形式(バイナリファイル)の場合は、openssl コマンドで、
PEM 形式(-----BEGIN CERTIFICATE----- ..... -----END
CERTIFICATE-----)に変換してから
登録します。
mv ca.crt ca.der
openssl x509 -inform der -in ca.der -out ca.crt
mv sub.class1.server.ca.crt sub.ca.der
openssl x509 -inform der -in sub.ca.der -out sub.ca.crt
関連ツール:
cat /etc/pki/tls/private/showPasswd.sh
#!/bin/sh
echo "my-domain-name-with-passwd.key
のパスフレーズ"
Web Server へのSSL接続し、正しく動作していることの確認
1、通常の http での接続時の状態。
“Favicon”部分の背景がグレーで、鍵マークは表示されない。
2、https での接続時の状態
“Favicon”部分の背景が青(SSLによる接続状態、サイト運営会社の存在証明は無し)で表示される。
ステータスバーに、鍵マークが表示される。
補足:
SSLの証明書は、ドメインの所有権の確認が出来れば発行される。
EV SSL(Extended Validation SSL)証明書では、ドメインの所有権の確認以外に、サイト運営会社の存在証明や、申請責任者の権限の
確認も必要となる。
EV SSL で運用されているサイトにアクセスすると、“Favicon”部分は緑色で表示され、会社の詳細や、認証した機関の情報が閲覧できる。
sec_error_unknown_issuer