さくらのVPSにRapidSSLの証明書を組み込んだときのメモ
2017/02/06 22:40
  • タイトル通りですが、サイトのSSL化の必要に迫られたので、お安く導入できるRapidSSLを試してみたときの記録です。
    サイトはさくらのVPSに乗せる想定でいますので、当然のごとくさくらのSSLでRapidSSLを契約します。

    購入にあたり、サーバー証明書を取得するための証明書((;´Д`))を事前に作成しておく必要があります。
    (購入手続きを進めていくと最初にCSRの入力を求められます)

    以下、順を追って説明していきたいと思います。

    CSRファイルを作成する

    このCSRファイルを作成しておかないと、SSL証明書の購入すらできません。笑
    以下の手順で作成しました。

    まず、CSRファイルを作成する前に、keyファイルを生成する必要があります。

    $ cd /etc/httpd/ssl
    $ sudo openssl genrsa -des3 -out ./your-domain-name.2017.key 2048
    [sudo] password for hogekun: 
    Generating RSA private key, 2048 bit long modulus
    ......................+++
    ..........................................................................................+++
    e is 65537 (0x10001)
    Enter pass phrase for ./your-domain-name.2017.key:
    Verifying - Enter pass phrase for ./your-domain-name.2017.key:
    

    ※ちゃんとパスフレーズも設定しましょう。

    次に、いよいよCSRファイルの生成に移ります。
    実は、生成にはドメイン情報の入力が必要となります。
    これから発行手続きを進めるドメインの情報の管理者が本当に正しいかどうかを
    このファイルを元に確認していくこととなります。

    したがって、申請ドメインのWHOIS情報と、以下の情報が一致している必要があるようです。
    先に whois your-domain して各自情報を確認しておきましょう。(ここでは飛ばします)

     $ sudo openssl req -new -key ./your-domain.2017.key -out ./your-domain.com.2017.csr
     Enter pass phrase for ./your-domain.com.2017.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) [XX]:JP
     State or Province Name (full name) []:Osaka
     Locality Name (eg, city) [Default City]:  #ブランクでOK
     Organization Name (eg, company) [Default Company Ltd]:Whois Privacy Protection Service by VALUE-DOMAIN
     Organizational Unit Name (eg, section) []:  #ブランクでOK
     Common Name (eg, your name or your server's hostname) []:www.your-domain.com
     Email Address []:  #ブランクでOK
    Please enter the following 'extra’ attributes
    
    to be sent with your certificate request
    
     A challenge password []:XXXXXX #たぶん適当でOK
    
     An optional company name []: #ブランク
    
    


    僕の場合、value-domainにwhois情報を代行しているため、Country Name, State or Province Name, Organization Nameには

    whois コマンドの出力と同じものを入力しました。

    Common Name にはこれから申請するドメインを書きましょう。

    上記が無事完了すると、ようやく以下のようなCSRファイルが作成されます。

    ——BEGIN CERTIFICATE REQUEST——
    MIIC…
    …
    …
    …
    ——END CERTIFICATE REQUEST—— 
    

    このBEGINからENDまで、ファイルに記載されているすべてをコピーして、
    さくらのSSLの画面にぶち込みましょう。

    安くて早い!ラピッドSSL証明書をさくらで取得して適用してみた

    上記サイト、画像つきで非常にわかりやすいです。

    認証ファイルのダウンロードから設置まで

    無事購入が終わると、「[さくらインターネット]SSLサーバ証明書 認証ファイルのアップロードについて」というメールが届きます。

    さくらの管理画面にログインすると、契約情報ページに「SSL ラピッドSSL(1年)」が追加されているので、
    「サーバー証明書」をクリックします。

    さらに、「認証ファイルDL」というボタンが有るので、クリックして認証ファイル(XXXXX.htm)をダウンロードします。
    このときには、すでに登録したドメイン配下の「XXXXX.htm」に以下のような感じで数分おきにリクエストが来るようになります。

    69.58.182.141 - - [04/Feb/2017:21:13:07 +0900] "GET /XXXXX.htm HTTP/1.1” 404 20 "-" "GTJavaClient"
    

    なのでアクセスログをチェックしておきましょう。
    あとはドキュメントルートに先程ダウンロードしたXXXXX.htmを設置して様子を見ます。
    一度ステータスコード200を返したのを確認できれば、もうリクエストは来なくなります。

    しばらくすると、管理画面の「認証ファイルDL」ボタンが「サーバー証明書DL」ボタンに差し替わります。

    サーバー証明書のダウンロードから中間証明書の発行まで

    続いて、サーバー証明書をダウンロードして、サーバーの任意の場所に設置します。ぼくの場合は /etc/httpd/ssl 配下に配置しました。
    次に、この証明書を元に、Apacheで使う中間証明書を生成します。

    $ sudo openssl x509 -text -out your-domain.intermediate.2017.pem -in server.crt 
    [sudo] password for hogekun: 
     Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
     …
     …
    
    

    server.crt は管理画面からダウンロードした証明書ファイル、outで指定しているのは生成する中間証明書です。
    上記コマンドを叩くとわらわらと出力があり、無事にpemファイルが生成されます。

    以上で、証明書周りの準備が完了となります。

    ssl.confに各種証明書を設定する

    最後の工程です。
    必要な証明書はすべて揃いましたので、いよいよApacheのconfigファイルを設定します。

    基本的にはデフォルトで設定されている項目を変更していく形となります。
    大事なは証明書のパスを正しく設定することですので、変更箇所だけ記載しておきます。

        SSLCertificateFile /etc/httpd/ssl/server.crt   
        SSLCertificateKeyFile /etc/httpd/ssl/your-domain.2017.key
        SSLCertificateChainFile /etc/httpd/ssl/your-domain.intermediate.2017.pem
    

    最後に、sudo /etc/init.d/httpd restart をして設定を反映させます。これで、https://your-domain/ にアクセスすると、安全な通信が確立されます!

    SSL化、そんなに難しくはないけど、工程は結構長い(ような気がする)ので
    地味に嬉しいです。笑
    あと、アドレスバーが緑になって「安全な通信」「Secure」って出るのが誇らしい。(๑•̀ㅁ•́๑)✧
    ドヤりちらしましょう。うん。

    参考サイト様


    さくらでSSL証明書を取得してサーバに組み込む

    安くて早い!ラピッドSSL証明書をさくらで取得して適用してみた

    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • <2017/02/05 15:01>
  • サーバー
  • さくらのVPSさくらのSSLRapidSSLWHOIS代行Apacheopensslhttps証明書csrpem中間証明書
  • 新しい記事へ
    [MySQL] レコードの有無に応じてInsert, Updateを自動で行う

    古い記事へ
    gitのリポジトリごとにname, emailを変更する方法

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。