難産!!圧倒的難産!!
自分の知識不足のせいでひどい目にあったものの、なんとかSSL証明書をインストールできた。
非常に快適だわ。
いちいち注意書き出てこないのが良すぎ。
しかも、Textasticのような公的証明書しかWebDAVに接続できないアプリも接続できた。
超絶快適です。
※注意!
ブログ主はさくらインターネットのVPS(CentOS6)での環境で行なっています。
今回の設定は下記の設定を終了したものとして書いています。
【さくら】VPSサーバーのパフォーマンスを向上させる。【DTI】
【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】
【セキュリティ】sshでのrootログインを禁止する【乗っ取り対策】
【オレオレ証明書】自作WebDAVサーバーにWindows7で接続する【Windows7】
StartSSLにアクセス
まず、無料でSSL証明書を発行してくれるありがたいサイト、StartSSLにアクセスし、StartSSL Freeをクリックする。
Certificate Control Panel.をクリック。
Sign-upをクリック。
個人情報の入力
個人情報を入力。
すべてローマ字で入力すること。
First, Last Name:名前 苗字
Complete Home Address(Street, House, Number):市町村や区、町村、番地の順
Zip, Locality/Place:郵便番号
Country:国
State/Region **:都道府県
Phone:電話番号
書き方が外国仕様。
例)0123−45−6789だと、+81−123−45−6789になる。
Email *:適当なメールアドレス。自分のメールサーバーでなくて良い。
すると登録したメールにStartSSLからコードが書いたメールが届くので、それを貼り付ける。
貼りつけたらcontinue。
StartSSLとメールでやり取り
6時間以内にメールするよ!みたいなメッセージが出てくるので、しばらく待つとメールが届く。
This electronic mail message was created by StartCom’s Administration Personnel
Thank you for registering with StartSSL! It seems that you provided us the address details of an organization. However our terms and conditions require from our subscribers to disclose the correct and complete address of residence. Please reply to this message and send us your personal details including correct phone number!
※葛葉訳
ヘイ!Youの個人情報がマジもんなのかこのメールにさっき送った個人情報を返信して証明してみてくれ!
ってことなので、個人情報を入力した時に入力したすべての情報を入力して返信する。
文章は多少違うのが届くかもしれないが、内容は同じ。
不安ならGoogle翻訳でも使ってくれればわかると思う。
自分の場合は、Hallo, XXX XXXX.(担当者)
My address is
katsushikaku kameari 1-1-1
125,0061
japan
tokyo
+81-3-1234-5678
Regards,
Kyoji Kuzunoha
すると、ブログ主の場合は、
Hello,
Is this your home address?!
と疑いのメールが届いたので、
Hello,Yes.It’s my home address.
と返したら信じてくれた。
すると、
Your request for an account at StartSSL™ (www.startssl.com) has been approved and is available during the next 24 hours at the following location:
https://www.startssl.com/?app=12&action=release&id=400399&auth=xxxxxxx
The verification code in order to continue the process is xxxxxxxx
Thank you!
とメールが届くので、長いURLをクリックする。
StartSSLへのログイン用SSL証明書の作成
StartSSLにログインするための証明書を作る。
この時に作成した証明書がインストールされているマシンでしかStartSSLにログイン出来ないので気をつける事!
暗号化セキュリティレベルはデフォルトの高でよい。
気になるなら最高にしたらいいと思う。
ブログ主は高で設定しているので、変えて繋がらない!とか言われても知りません。
installをクリックすると、そのマシンにログイン用SSL証明書がインストールされる。
Finichをクリックして終了。
Validations Wizardでの設定
今度はAuthenticateをクリック。
Validations Wizardをクリック。
Domain Name Validationを選択してcontinueをクリック。
取得したドメイン名を入力。
ここで前作ったメールサーバーが必要になる。
メールアドレスが4択だが、決められたものになっているので、前回作ったアカウント、hostmaster@マイドメインを選択してcontinue。
すると、hostmaster@〜にメールが届く。
This mail is intended for the person who requested verification of domain control at StartSSL™ (http://www.startssl.com).
Your verification code is XXXXXXXXXXX
Copy and paste this code now into the form at your open browser window.
Thank you!
アクティベーションコードが書いてあるので、貼り付けてcontinueをクリックすると、ドメインが認証されるのでFinishをクリック。
server.keyの確認
ここでいきなりVPS。
権限をrootに変更
【セキュリティ】sshでのrootログインを禁止する【乗っ取り対策】
での設定によりsshでのrootログインを禁止したので、スーパーユーザー(root)に権限を昇格させる。[kuzunoha(ユーザー名)@ ~]$ su エンターキー
rootバスワードを入力する。
[root@ kuzunoha]#
になればrootに変更された。
カレントディレクトリに移動。
[root@ kuzunoha]# cd エンターキー
カレントディレクトリに移動し、rootでログインした時と同じ
[root@ ~]#
になる。
server.csrを開く
WebDAVを設定した時に作った秘密鍵server.csrを開く。
[root@ ~]# vim /etc/pki/tls/certs/server.csr エンターキー
すると、
—–BEGIN RSA PRIVATE KEY—–
N1gir26eVoRgdIfAlNYPSXx1YTWexVga8cD+IdEcN3hjDziVsa4jIFg3eFD3Bgwz
vST7W/gc870X63+Ec2WDSseBK23bY2xDUl6nOEXTx78uwVfMYoMZOXVq99ow6eSq
cKbqJNJ+XqWBJRiNQ6ba2P7MSAgZllNhTtfCp2QZaf6yc/5TahOC3vmcw7wVQaTM
nw1qehBsk+6x8cIeBkRRO03RWgzw0ETLLdEEbD6uU7jcvImWR8AgfsOphxCzAcJa
QOtaXxkAqQ7AopuJKF0EYWB7bdBTsSwr6VDHEc0W0UnQzkrplaJ9cjEHPdLDqC9E
〜
—–END RSA PRIVATE KEY—–
—–BEGIN RSA PRIVATE KEY—–
から
—–END RSA PRIVATE KEY—–
までをすべてコピーし、メモ帳にでも貼り付けておこう。
とりあえずVPSはここまで。
またStartSSLに戻る。
Certificates Wizardでの設定
Certificates Wizardをクリックする。
Web Server SSL/TLS Certificateを選択。
Skipをクリック。
VPSで確認したserver.csrのコードを貼り付けてcontinueをクリック。
多分マイドメインが選択されていると思うが、確認してcontinueをクリック。
サブドメインの入力。
なんでも良い。
ブログ主はwwwを指定した。
StartSSLはmydomain.comの他に、xxx.mydomain.comのxxxの部分(サブドメイン)までSSL化してくれる。
一つしか指定できないが、なにか指定しなければならないのでwwwとでも入力しておこう。
continueをクリック。
ToolBoxでの設定
しばらくメール待っとけっていう英文が出てくるので、しばし待つと下記のようなメールが届く。
This mail concerns the digital certificate you requested from the StartCom Certification Authority (http://www.startssl.com). Your certificate with serial number 1111111 has been signed and is available at the Control Panel:
https://www.startssl.com/?app=12
Please login to your account and select from the Tool Box tab the section Retrieve Certificate. The pending certificate is marked with a green colored label.
Thank you!
届いたらツールボックスを開く。
Retrieve Certificateをクリック。
www.マイドメイン(Server – Class 1 – 〜)
を選択してcontinue
ここに書いてあるコードが認証済みSSL証明書になる。
これをすべてコピーし、メモ帳に貼り付け。
startssl.crtと言う名前で保存する。
認証済み証明書をVPSにアップロード
ここからまたVPS。
startssl.crtをVPSにアップロードし、ディレクトリ/etc/pki/tls/certs/に移動する。
WebDAVに入れてもいいし、Cyberduckを使うなりしてアップロード。
startssl.crtがあるディレクトリで
[root@ ~]# cp startssl.crt /etc/pki/tls/certs/ エンターキー
certsディレクトリにコピーされた。
中間証明書とルート証明書をダウンロード
SSL証明書があるディレクトリへ移動。
[root@ ~]# cd /etc/pki/tls/certs/ エンターキー
ディレクトリcertsへ移動した。
中間証明書とルート証明書をダウンロードする。
[root@ certs~]# wget https://www.startssl.com/certs/ca.pem エンターキー
[root@ certs~]# wget https://www.startssl.com/certs/sub.class1.server.ca.pem エンターキー
ルート証明書ca.pem、中間証明書sub.class1.server.ca.pemがダウンロードされた。
アクセス権の変更
証明書のアクセス権を変更する。
[root@ certs~]# chmod 400 startssl.crt エンターキー
[root@ certs~]# chmod 400 ca.pem エンターキー
[root@ certs~]# chmod 400 sub.class1.server.ca.pem エンターキー
証明書用にアクセス権が変更された。
Apacheのssl.confの書き換え
最後にApacheにSSL証明書を認識させる。
[root@ ~]# vim /etc/httpd/conf.d/ssl.conf エンターキー
105行目
SSLCertificateFile /etc/pki/tls/certs/server.pem
を
105 SSLCertificateFile /etc/pki/tls/certs/startssl.crt
に書き換え。
121行目
#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
を
SSLCertificateChainFile /etc/pki/tls/certs/sub.class1.server.ca.pem
に書き換え。
#も消すこと。
127行目
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
を
SSLCACertificateFile /etc/pki/tls/certs/ca.pem
に書き換え。
#も消す。
:wqで終了。
変更を反映させるため、Apacheを再起動する。
[root@ ~]# service httpd restart エンターキー
きちんと起動すれば認証済み証明書のインストールは完了。
アクセスしてみよう
いつも出る鬱陶しいエラーが出なければ見事に適用されてる。
オレオレ証明書に対応していないアプリでも見事に認識するので、死蔵してたアプリでも試してみよう。
何かミスがあったらコメント下さい。
キョウジさん、おはようございます。
大作、お疲れ様です。
一点、ミスがあります。
Certificates Wizardにコピペするのは、server.keyではなく
server.csr
です。
あと、WinだとIEの場合、セキュリティレベルを中~高に設定しておかないとStartSSLにアクセス出来ないようです。
Sleipnirだとアクセスは出来るんですが、最初の証明書のインストールが出来ないのでアウトです。
FireFoxはサポートブラウザなので大丈夫かと思いますが、試しておりません…
私は住所確認のメールは来なかったんですが、
「ドメイン取ってからちょっとしか経ってないから数日経ってからやり直せ!」
と怒られました。笑
早くエラーの嵐から抜け出したい…
あれ?server.keyでもいけなかったですか?
.csrはれよ!とは書いてあったんですが、中身は似たようなもんだろと無視してkeyを貼り付けたらいけたんでそのままつかってますw
ssl.confの中身を出来るだけ書き換えたくなかったのでw
そういえば、IEはStartSSLだと使えないかもしれないみたいなこと書いてあったような気が。
FireFoxなら大丈夫なはずです。
IE融通気かなすぎですね(;´Д`)
ドメインをとってからしばらく経たないとダメなんですか(;´Д`)
自分のは4月25日に取得したドメインなので、2週間くらいは使ってましたからね。
もうちょっとの辛抱ですw
IEで大丈夫でした。
server.keyだとcsrのヘッダーとフッターが入ってないのでダメとエラーではじかれました。
これもWinだけ?笑
Several Daysとあるので2~3日でいけると思います。
あら。
なんでだろう。
ToolBoxのKey Bug Checkerに通してみたんですが、
No vulnerability has been detected. You may use this key.
って出たんで問題無いと思うんですけど、Macだから??
もう一度試したいけど試せないのがもどかしいw
keyじゃダメみたいでした。
記事書き換えます。
色々ごちゃごちゃやってるうちに上書きしたのかもしれないですw
いつも試してもらってすいません。
お世話になります。きんちゃんです。
せっかく https:// でアクセスしても警告が出なくなったのですから、http:// でアクセスしたきたもの全てを、https:// にリダイレクトするのは如何でしょうか?
いつでも、「ああ、おいらは、ちゃんとした SSL 証明書を持っているのだ」という満足感に浸れます。:-)
また、私の Web ではユーザー認証をする CGI が動いたりしているのですが、うっかり、http でアクセスしても、自動的に https に飛ばされるので、詳しくない人にも安心です。
mod_rewrite を入れて、httpd.conf に次を下記を追加して OK です。
mod_rewrite の設定に際し、
http://www.askapache.com/htaccess/ssl-example-usage-in-htaccess.html
を参考にして、色々とやってみたため、残骸の # が残っていますが、
下記の設定が Best のように私も思いました。
RewriteEngine On
RewriteLog “/var/log/httpd-rewrite_log”
RewriteLogLevel 0
RewriteCond %{HTTPS} !=on
# RewriteCond %{SERVER_PORT} !^443$
# RewriteCond %{SERVER_PORT} ^80$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
# RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [R,L]
# RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/$1 [L,R]
# RewriteRule (.*)?$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
ではでは
おお、リダイレクトですか。
http://ってはじめからにゅうりょくされている事が多いので、
そっちの方が効率的ですよね。
やってみます。
ありがとうございますヽ(´ー`)ノ
キョウジ様
お疲れ様です。ありがとうございました。
当方のマニアックな環境でも、きっちり稼働しました。WebDAVに接続する度に開くダイアログが無くなっただけで随分進歩した感じです。
住所確認のメールは来ませんでした。
よろしければ、
今回入手した正規の証明書でのimoten送信のSSL化(オレオレ→正規版への変更)をご教示して頂けると嬉しいです。
おお、取得出来ましたか。
server.keyでcrt取得出来ました?
server.key内容のコピペでは、crt取得できなかったので、
既存のオレオレのkeyは無視して、Web画面Skipしたところでパスワード入れて、秘密鍵ファイルを新規作成しました。
問題点は、アパッチ再起動のたびパスワードを要求されるので(毎夜3時にサーバー再起動、放置するとアパッチ再起動しない)、Google検索で得た情報「パスワードを埋め込んだ秘密鍵ファイル」に変換して運用しています。
私のやり方が下手だったかもしれませんが、何とか目的達成できました。
keyダメでしたか。
色々やってるうちに上書きしちゃったのかな(;´Д`)
ご迷惑をお掛けしました。
パスワードは秘密鍵のあるディレクトリで、
[root@ ~]# openssl rsa -in server.key(秘密鍵の名前) -out server.key(秘密鍵の名前)
を行い、設定したパスワードを入力すればパスワードを削除することが出来ますよ。
キョウジ様
迷惑なんてとんでもない。
きっかけを作っていただけるだけで感謝です。後の始末は自己責任ですから。
ましてや私の環境は特異(お名前VPS(VZ)プラン)なんで(おかげでメールサーバー構築はスルーできましたが)。
そのせいかどうか、パスワードを消す式は、アパッチ起動でエラーを吐いたので、結局埋め込む式になりました。
コマンド忘れちゃいましたが(w。
くずのはさん
こんにちは
詳しい解説ありがとうございます。いつもながら、丁寧でうれしいです。
お手すきのときにおしえてもらいたいです。
最後の1行まで、順調にきました。
startsslも問い合わせもなく、サッサといきました。
しかし、
service httpd restart
ここで、
httpd を停止中: [失敗]
httpd を起動中: [失敗]
なりました。
#apachectl -t
の結果は、
Syntax OK
#/etc/init.d/httpd status
は、
httpd は停止しています
#ps ax | grep httpd
は
28309 pts/0 S+ 0:00 grep httpd
です。
wavdavもつい最近まで動いていて、startssl.crtもアップロードできたのに、不思議に
最後にとまってしまい、全然わからないながら、何時間もしていますが、もうお手上げな感じです。
秘密鍵が間違ってるんじゃないですか?
秘密鍵csrで公開鍵crtを作ったとは思いますが、その時に貼りつけた秘密鍵と一致していなかったらアウトです。
最悪crtファイルを作り替えになります。
>とーやまさん
startssl.crtを作る際は、server.csr から作った前提で。
ssl.conf の SSLCertificateKeyFile ですが、
server.csr ではなく、 server.key を指定してみてはどうでしょう?
あ、そうだ。
あとWindowsからだとメモ帳に貼り付け後アップロードしても、拡張子を表示しない状態になってるとserver.csr.txtっていうカオスなファイル名にならないですかね?
viエディタでstartssl.crtを開いて、コードをコピペしたほうがいいっていつも設定してくれている方が言ってました。
くずのはさん
おすぎさん
ありがとうございます。
crtもう1回作りかえてみました。
vi/・・・
でコピペしました。
でも、できなくて・・・
そこで
csrでcrtは作りましたので、
おすぎさんのご指摘通り
ssl.conf の SSLCertificateKeyFile を
keyでしました。
httd 起動しました。
ばんざーい。できました。
良くわかってないんですが、ssl.confのSSLCertificateKeyFileが
csrとkeyと設定するのではどう違うのか分かっていません。
また勉強です。
お二人ともありがとうございました。
いつもありがとうございます。
今回はmacとUNIXでは改行コードが違うことがあるということに気づかず、試行錯誤してしまいました。
まあ、そのおかげで内容がある程度理解ができるようになったのは、怪我の功名というやつでしょうか。
あと、少数派だと思いますが、Cloud Coreだとmakeコマンドでserver.keyを作成すると1024になるようで(OSのバージョンか?)、2048以上で作り直したらうまくいきました。
マジすか(;´Д`)
一応さくらVPSでの前提に記事を組んでいるので、
少しでも仕様が変わるとできなくなったりするのがLinuxの恐ろしいところですねw
くずのはさん
メールサーバーの設定とはうってかわってSSL証明書のインストールは比較的スムーズに成功しました。ありがとうございます。
ssl.conf の SSLCertificateKeyFileはserver.csrではhttpdの再起動に失敗でしたが、server.keyで再起動できました。
server.csrとserver.keyはペアをなしていて、公開鍵と秘密鍵の関係にあります。
この投稿記事ではそこが混同されていますが、Webdav構築時の記事には、「公開鍵server.csrを作る」と記載されていて、これは正しいですね。
http://limesheep5.sakura.ne.jp/wordpress/wordpress/2012/04/webdavwindows7windows7.html
正確には、server.csrは署名要求と言って、公開鍵以外の情報も含まれていますが、その本質は公開鍵です。
この公開鍵を認証機関であるstartsslに渡して、「サーバー証明書: *.crt」に作り変えてもらっています。
SSLCertificateKeyFileとは秘密鍵のことを示していますので、この場合はserver.keyを指定する必要があるわけです。
startsslに渡している時点でserver.csrが秘密鍵にはなり得ないのは感覚的にはわかるかとは思います。
くずのはさんの場合は、.keyファイルをstartsslに渡して、.csrを秘密鍵として指定されているのかもしれません。(コメントを読む限りそういうプロセスを経たような?)
それなら秘密鍵を公開鍵と読みなおせばいいだけですので、特に問題ないのでしょうが、これまで「俺俺認証」の際には公開鍵としていたものを秘密鍵化しているのは、精神衛生的にはよくないかもしれませんが。
crtを作る時にcsrを貼り付けるのがちょっと理解できなかったんですよね。
なんで公開鍵を貼り付けて公開鍵を作るんだろう?
秘密鍵と関連付けるなら秘密鍵じゃないのかなと思って。
で、自分が作った時は何度もやり直してkeyファイルをStartSSLで作ったんですけど、csrコードを貼り付けてもcrtを作ることが出来る所を、keyを貼り付けるのと勘違いしてたんですよね。
結果不完全な記事になってしまいました(;´Д`)
key、car、crtの関連付けをイマイチ理解してなかったです。
メールサーバーの件も含めて、複雑なことをいっぺんにやろうと思うと仕方ないですよね… 打ち込んだコマンドの数も数多知れず…
Aさんの公開鍵に対して「Aさんは確かに存在してて、この公開鍵はAさんのもので間違いなく、現在も有効です」とお墨付きをもらうため、証明書発行機関であるStartSSLに渡すという風に理解するとわかりやすいかもですね。
記事の修正をいただいたと思うのですが、とすると、stunnelの方も変更したほうがよいかもしれません。ご参考まで。
http://limesheep5.sakura.ne.jp/wordpress/wordpress/2012/05/stunnel-ssl.html
書いた記事と実際自分が設定したことが違ってたりするんでまた困るんですよね。
あまりもコマンド撃ちまくってconfを変更しまくってたりするので、
何したんだっけ(;´Д`)?
ってなることも数えきれないですw
そういえばStunnelの存在をすっかり忘れてましたw
修正しておきます。
ありがとうございますヽ(´ー`)ノ