VPSに無料の認証済みSSL証明書をインストールする

startssl


難産!!圧倒的難産!!

自分の知識不足のせいでひどい目にあったものの、なんとかSSL証明書をインストールできた。

非常に快適だわ。

いちいち注意書き出てこないのが良すぎ。

しかも、Textasticのような公的証明書しかWebDAVに接続できないアプリも接続できた。

超絶快適です。


※注意!


ブログ主はさくらインターネットのVPS(CentOS6)での環境で行なっています。

今回の設定は下記の設定を終了したものとして書いています。


【SSL証明書】VPSにメールサーバーを設定する【取得用】


【VPSに】ドメインを取ろう【割り当て】


【さくら】VPSサーバーのパフォーマンスを向上させる。【DTI】


【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】


【セキュリティ】sshでのrootログインを禁止する【乗っ取り対策】


【オレオレ証明書】自作WebDAVサーバーにWindows7で接続する【Windows7】



StartSSLにアクセス


まず、無料でSSL証明書を発行してくれるありがたいサイト、StartSSLにアクセスし、StartSSL Freeをクリックする。


Startssl



Certificate Control Panel.をクリック。


Startssl 1



Sign-upをクリック。


Startssl 2



個人情報の入力


個人情報を入力。

すべてローマ字で入力すること。


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 3



すると登録したメールにStartSSLからコードが書いたメールが届くので、それを貼り付ける。


Startssl 4



貼りつけたらcontinue。


Startssl 5



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にログイン出来ないので気をつける事!

暗号化セキュリティレベルはデフォルトの高でよい。

気になるなら最高にしたらいいと思う。

ブログ主は高で設定しているので、変えて繋がらない!とか言われても知りません。


Startssl 6



installをクリックすると、そのマシンにログイン用SSL証明書がインストールされる。


Startssl 7



Finichをクリックして終了。



Startssl 8



Validations Wizardでの設定


今度はAuthenticateをクリック。


Startssl 9



Validations Wizardをクリック。


Startssl 10


Domain Name Validationを選択してcontinueをクリック。


Startssl 12



取得したドメイン名を入力。


Startssl 13



ここで前作ったメールサーバーが必要になる。

メールアドレスが4択だが、決められたものになっているので、前回作ったアカウント、hostmaster@マイドメインを選択してcontinue。


Startssl 14



すると、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をクリック。


Startssl 15



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をクリックする。


StartSSL 16



Web Server SSL/TLS Certificateを選択。


Startssl 17



Skipをクリック。


Startssl 18



VPSで確認したserver.csrのコードを貼り付けてcontinueをクリック。


Startssl 18 1



多分マイドメインが選択されていると思うが、確認してcontinueをクリック。


Startssl 21



サブドメインの入力。

なんでも良い。

ブログ主はwwwを指定した。

StartSSLはmydomain.comの他に、xxx.mydomain.comのxxxの部分(サブドメイン)までSSL化してくれる。

一つしか指定できないが、なにか指定しなければならないのでwwwとでも入力しておこう。


Startssl 22



continueをクリック。


Startssl 23



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!


届いたらツールボックスを開く。


Startssl 24



Retrieve Certificateをクリック。


Startssl 25



www.マイドメイン(Server – Class 1 – 〜)

を選択してcontinue


Startssl 26



ここに書いてあるコードが認証済みSSL証明書になる。

これをすべてコピーし、メモ帳に貼り付け。

startssl.crtと言う名前で保存する。


Startssl 27



認証済み証明書を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 エンターキー


きちんと起動すれば認証済み証明書のインストールは完了。



アクセスしてみよう


いつも出る鬱陶しいエラーが出なければ見事に適用されてる。

オレオレ証明書に対応していないアプリでも見事に認識するので、死蔵してたアプリでも試してみよう。

何かミスがあったらコメント下さい。


VPSに無料の認証済みSSL証明書をインストールする」への24件のフィードバック

  1. Ayk@mementomori_a

    キョウジさん、おはようございます。
    大作、お疲れ様です。

    一点、ミスがあります。
    Certificates Wizardにコピペするのは、server.keyではなく

    server.csr

    です。
    あと、WinだとIEの場合、セキュリティレベルを中~高に設定しておかないとStartSSLにアクセス出来ないようです。
    Sleipnirだとアクセスは出来るんですが、最初の証明書のインストールが出来ないのでアウトです。
    FireFoxはサポートブラウザなので大丈夫かと思いますが、試しておりません…

    私は住所確認のメールは来なかったんですが、
    「ドメイン取ってからちょっとしか経ってないから数日経ってからやり直せ!」
    と怒られました。笑

    早くエラーの嵐から抜け出したい…

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      あれ?server.keyでもいけなかったですか?
      .csrはれよ!とは書いてあったんですが、中身は似たようなもんだろと無視してkeyを貼り付けたらいけたんでそのままつかってますw
      ssl.confの中身を出来るだけ書き換えたくなかったのでw

      そういえば、IEはStartSSLだと使えないかもしれないみたいなこと書いてあったような気が。
      FireFoxなら大丈夫なはずです。
      IE融通気かなすぎですね(;´Д`)

      ドメインをとってからしばらく経たないとダメなんですか(;´Д`)
      自分のは4月25日に取得したドメインなので、2週間くらいは使ってましたからね。
      もうちょっとの辛抱ですw

      返信
      1. Ayk@mementomori_a

        IEで大丈夫でした。
        server.keyだとcsrのヘッダーとフッターが入ってないのでダメとエラーではじかれました。
        これもWinだけ?笑

        Several Daysとあるので2~3日でいけると思います。

        返信
        1. 葛葉 キョウジ(管理人) 投稿作成者

          あら。
          なんでだろう。
          ToolBoxのKey Bug Checkerに通してみたんですが、
          No vulnerability has been detected. You may use this key.
          って出たんで問題無いと思うんですけど、Macだから??
          もう一度試したいけど試せないのがもどかしいw

          返信
        2. 葛葉 キョウジ(管理人) 投稿作成者

          keyじゃダメみたいでした。
          記事書き換えます。
          色々ごちゃごちゃやってるうちに上書きしたのかもしれないですw

          いつも試してもらってすいません。

          返信
  2. きんちゃん

    お世話になります。きんちゃんです。

    せっかく 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]

    ではでは

    返信
  3. まこと

    キョウジ様
    お疲れ様です。ありがとうございました。
    当方のマニアックな環境でも、きっちり稼働しました。WebDAVに接続する度に開くダイアログが無くなっただけで随分進歩した感じです。
    住所確認のメールは来ませんでした。

    よろしければ、
    今回入手した正規の証明書でのimoten送信のSSL化(オレオレ→正規版への変更)をご教示して頂けると嬉しいです。

    返信
  4. 葛葉 キョウジ(管理人) 投稿作成者

    おお、取得出来ましたか。
    server.keyでcrt取得出来ました?

    返信
    1. まこと

      server.key内容のコピペでは、crt取得できなかったので、
      既存のオレオレのkeyは無視して、Web画面Skipしたところでパスワード入れて、秘密鍵ファイルを新規作成しました。
      問題点は、アパッチ再起動のたびパスワードを要求されるので(毎夜3時にサーバー再起動、放置するとアパッチ再起動しない)、Google検索で得た情報「パスワードを埋め込んだ秘密鍵ファイル」に変換して運用しています。
      私のやり方が下手だったかもしれませんが、何とか目的達成できました。

      返信
      1. 葛葉 キョウジ(管理人) 投稿作成者

        keyダメでしたか。
        色々やってるうちに上書きしちゃったのかな(;´Д`)
        ご迷惑をお掛けしました。

        パスワードは秘密鍵のあるディレクトリで、
        [root@ ~]# openssl rsa -in server.key(秘密鍵の名前) -out server.key(秘密鍵の名前)

        を行い、設定したパスワードを入力すればパスワードを削除することが出来ますよ。

        返信
        1. まこと

          キョウジ様
          迷惑なんてとんでもない。
          きっかけを作っていただけるだけで感謝です。後の始末は自己責任ですから。
          ましてや私の環境は特異(お名前VPS(VZ)プラン)なんで(おかげでメールサーバー構築はスルーできましたが)。
          そのせいかどうか、パスワードを消す式は、アパッチ起動でエラーを吐いたので、結局埋め込む式になりました。
          コマンド忘れちゃいましたが(w。

          返信
  5. とーやま

    くずのはさん

    こんにちは

    詳しい解説ありがとうございます。いつもながら、丁寧でうれしいです。

    お手すきのときにおしえてもらいたいです。

    最後の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もアップロードできたのに、不思議に
    最後にとまってしまい、全然わからないながら、何時間もしていますが、もうお手上げな感じです。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      秘密鍵が間違ってるんじゃないですか?
      秘密鍵csrで公開鍵crtを作ったとは思いますが、その時に貼りつけた秘密鍵と一致していなかったらアウトです。

      最悪crtファイルを作り替えになります。

      返信
    2. おすぎ

      >とーやまさん

      startssl.crtを作る際は、server.csr から作った前提で。
      ssl.conf の SSLCertificateKeyFile ですが、
      server.csr ではなく、 server.key を指定してみてはどうでしょう?

      返信
      1. 葛葉 キョウジ(管理人) 投稿作成者

        あ、そうだ。
        あとWindowsからだとメモ帳に貼り付け後アップロードしても、拡張子を表示しない状態になってるとserver.csr.txtっていうカオスなファイル名にならないですかね?

        viエディタでstartssl.crtを開いて、コードをコピペしたほうがいいっていつも設定してくれている方が言ってました。

        返信
        1. とーやま

          くずのはさん
          おすぎさん

          ありがとうございます。

          crtもう1回作りかえてみました。
          vi/・・・
          でコピペしました。

          でも、できなくて・・・

          そこで
          csrでcrtは作りましたので、

          おすぎさんのご指摘通り
          ssl.conf の SSLCertificateKeyFile を
          keyでしました。

          httd 起動しました。
          ばんざーい。できました。

          良くわかってないんですが、ssl.confのSSLCertificateKeyFileが
          csrとkeyと設定するのではどう違うのか分かっていません。

          また勉強です。
          お二人ともありがとうございました。

          返信
  6. feifon

    いつもありがとうございます。
    今回はmacとUNIXでは改行コードが違うことがあるということに気づかず、試行錯誤してしまいました。
    まあ、そのおかげで内容がある程度理解ができるようになったのは、怪我の功名というやつでしょうか。
    あと、少数派だと思いますが、Cloud Coreだとmakeコマンドでserver.keyを作成すると1024になるようで(OSのバージョンか?)、2048以上で作り直したらうまくいきました。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      マジすか(;´Д`)
      一応さくらVPSでの前提に記事を組んでいるので、
      少しでも仕様が変わるとできなくなったりするのがLinuxの恐ろしいところですねw

      返信
  7. ケンヂ

    くずのはさん

    メールサーバーの設定とはうってかわってSSL証明書のインストールは比較的スムーズに成功しました。ありがとうございます。
    ssl.conf の SSLCertificateKeyFileはserver.csrではhttpdの再起動に失敗でしたが、server.keyで再起動できました。

    返信
    1. おすぎ

      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を秘密鍵として指定されているのかもしれません。(コメントを読む限りそういうプロセスを経たような?)
      それなら秘密鍵を公開鍵と読みなおせばいいだけですので、特に問題ないのでしょうが、これまで「俺俺認証」の際には公開鍵としていたものを秘密鍵化しているのは、精神衛生的にはよくないかもしれませんが。

      返信
      1. 葛葉 キョウジ(管理人) 投稿作成者

        crtを作る時にcsrを貼り付けるのがちょっと理解できなかったんですよね。
        なんで公開鍵を貼り付けて公開鍵を作るんだろう?
        秘密鍵と関連付けるなら秘密鍵じゃないのかなと思って。

        で、自分が作った時は何度もやり直してkeyファイルをStartSSLで作ったんですけど、csrコードを貼り付けてもcrtを作ることが出来る所を、keyを貼り付けるのと勘違いしてたんですよね。

        結果不完全な記事になってしまいました(;´Д`)
        key、car、crtの関連付けをイマイチ理解してなかったです。

        返信
        1. おすぎ

          メールサーバーの件も含めて、複雑なことをいっぺんにやろうと思うと仕方ないですよね… 打ち込んだコマンドの数も数多知れず…

          Aさんの公開鍵に対して「Aさんは確かに存在してて、この公開鍵はAさんのもので間違いなく、現在も有効です」とお墨付きをもらうため、証明書発行機関であるStartSSLに渡すという風に理解するとわかりやすいかもですね。
          記事の修正をいただいたと思うのですが、とすると、stunnelの方も変更したほうがよいかもしれません。ご参考まで。
          http://limesheep5.sakura.ne.jp/wordpress/wordpress/2012/05/stunnel-ssl.html

          返信
          1. 葛葉 キョウジ(管理人) 投稿作成者

            書いた記事と実際自分が設定したことが違ってたりするんでまた困るんですよね。
            あまりもコマンド撃ちまくってconfを変更しまくってたりするので、
            何したんだっけ(;´Д`)?
            ってなることも数えきれないですw

            そういえばStunnelの存在をすっかり忘れてましたw
            修正しておきます。
            ありがとうございますヽ(´ー`)ノ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)