「ConoHa VPS に SSL証明書を取得してみた」の版間の差分

提供: tknotebook
移動: 案内検索
(ページの作成:「 mkdir certbot cd certbot git clone https://github.com/certbot/certbot <pre> Cloning into 'certbot'... remote: Counting objects: 41606, done. remote: Compressing ...」)
 
(証明書の期限の確認方法)
 
(1人の利用者による、間の29版が非表示)
1行: 1行:
 +
[[Category:コンピュータ]][[Category:Linux]]
 +
[[メインページ]]&gt;[[コンピュータの部屋]]&gt;[[ConoHa VPS を使ってみた]]
  
 +
 +
ConoHa の LAMP環境 で、セキュリティ向上のため SSL を使えるようにするために、Let`s Encrypt から証明書を入手してみました。
 +
 +
==条件==
 +
 +
Let`s Encrypt で取得できるのはドメインの証明書です。ドメインの所有権を証明します。
 +
 +
Let`s Encrypt証明書を取得するには以下の3条件を作業前にクリアしておく必要があります。
 +
 +
#ドメインを所有していること
 +
#ドメイン上で HTTP サーバが動いていて Let`s Encrypt からアクセスできること。
 +
#ポート443が開いていること。iptables 等を使っている人は 443 を開けてください。
 +
 +
==手順==
 +
 +
認証書取得用ソフト certbot を github から入手し、インストールして起動します。
 +
 +
===Certbot用ディレクトリを作ります===
 +
 +
場所はどこでもよいので
  
 
  mkdir certbot
 
  mkdir certbot
  
 
  cd certbot
 
  cd certbot
 
  
 
  git clone https://github.com/certbot/certbot
 
  git clone https://github.com/certbot/certbot
16行: 37行:
 
Resolving deltas: 100% (29658/29658), done.
 
Resolving deltas: 100% (29658/29658), done.
 
</pre>
 
</pre>
 +
 +
 +
===certbot の起動===
  
 
  cd certbot
 
  cd certbot
  
 
  ./certbot-auto
 
  ./certbot-auto
 +
 +
これで OS が自動的に識別され、必要なパッケージがネットワークからロードされ certbot が起動します。
 +
 +
この起動の仕方だと一気に apacheの設定までやってしまいます。証明書の取得のみなら
 +
 +
./certbot-auto certonly
 +
 +
でいけるそうです。今回は設定までやって貰いました。
  
 
<pre>
 
<pre>
28行: 60行:
 
  :
 
  :
  
Dependencies Resolved
+
</pre>
  
================================================================================
+
===certbotの操作===
Package              Arch      Version                      Repository  Size
+
================================================================================
+
Installing:
+
augeas-libs          x86_64    1.0.0-10.el6                  base      314 k
+
dialog                x86_64    1.1-9.20080819.1.el6          base      197 k
+
libffi-devel          x86_64    3.0.5-3.2.el6                base        18 k
+
mod_ssl              x86_64    1:2.2.15-55.el6.centos.2      updates    97 k
+
python-devel          x86_64    2.6.6-66.el6_8                updates    173 k
+
python-libs          i686      2.6.6-66.el6_8                updates    5.3 M
+
    replacing  python-ordereddict.noarch 1.1-2.el6
+
python-libs          x86_64    2.6.6-66.el6_8                updates    5.3 M
+
    replacing  python-ordereddict.noarch 1.1-2.el6
+
python-pip            noarch    7.1.0-1.el6                  epel      1.5 M
+
python-tools          x86_64    2.6.6-66.el6_8                updates    871 k
+
python-virtualenv    noarch    1.10.1-1.el6                  epel      1.3 M
+
Updating:
+
ca-certificates      noarch    2015.2.6-65.0.1.el6_7        base      1.2 M
+
gcc                  x86_64    4.4.7-17.el6                  base        10 M
+
openssl              x86_64    1.0.1e-48.el6_8.3            updates    1.5 M
+
openssl-devel        x86_64    1.0.1e-48.el6_8.3            updates    1.2 M
+
python                x86_64    2.6.6-66.el6_8                updates    76 k
+
redhat-rpm-config    noarch    9.0.3-51.el6.centos          base        60 k
+
Installing for dependencies:
+
bzip2-libs            i686      1.0.5-7.el6_0                base        36 k
+
db4                  i686      4.7.25-20.el6_7              base      580 k
+
expat                i686      2.0.1-11.el6_2                base        79 k
+
gdbm                  i686      1.8.0-39.el6                  base        29 k
+
glibc                i686      2.12-1.192.el6                base      4.4 M
+
keyutils-libs        i686      1.4-5.el6                    base        20 k
+
krb5-libs            i686      1.10.3-57.el6                base      778 k
+
libcom_err            i686      1.41.12-22.el6                base        37 k
+
libffi                i686      3.0.5-3.2.el6                base        22 k
+
libselinux            i686      2.0.94-7.el6                  base      109 k
+
ncurses-libs          i686      5.7-4.20090207.el6            base      249 k
+
nss-softokn-freebl    i686      3.14.3-23.3.el6_8            updates    157 k
+
openssl              i686      1.0.1e-48.el6_8.3            updates    1.5 M
+
readline              i686      6.0-4.el6                    base      176 k
+
sqlite                i686      3.6.20-1.el6_7.2              base      306 k
+
tcl                  x86_64    1:8.5.7-6.el6                base      1.9 M
+
tix                  x86_64    1:8.4.3-5.el6                base      252 k
+
tk                    x86_64    1:8.5.7-5.el6                base      1.4 M
+
tkinter              x86_64    2.6.6-66.el6_8                updates    258 k
+
zlib                  i686      1.2.3-29.el6                  base        73 k
+
Updating for dependencies:
+
cpp                  x86_64    4.4.7-17.el6                  base      3.7 M
+
db4                  x86_64    4.7.25-20.el6_7              base      563 k
+
db4-cxx              x86_64    4.7.25-20.el6_7              base      588 k
+
db4-devel            x86_64    4.7.25-20.el6_7              base      6.6 M
+
db4-utils            x86_64    4.7.25-20.el6_7              base      130 k
+
e2fsprogs            x86_64    1.41.12-22.el6                base      554 k
+
e2fsprogs-libs        x86_64    1.41.12-22.el6                base      121 k
+
gcc-c++              x86_64    4.4.7-17.el6                  base      4.7 M
+
gcc-gfortran          x86_64    4.4.7-17.el6                  base      4.7 M
+
gdbm                  x86_64    1.8.0-39.el6                  base        29 k
+
gdbm-devel            x86_64    1.8.0-39.el6                  base        26 k
+
glibc                x86_64    2.12-1.192.el6                base      3.8 M
+
glibc-common          x86_64    2.12-1.192.el6                base        14 M
+
glibc-devel          x86_64    2.12-1.192.el6                base      988 k
+
glibc-headers        x86_64    2.12-1.192.el6                base      617 k
+
httpd                x86_64    2.2.15-55.el6.centos.2        updates    834 k
+
httpd-devel          x86_64    2.2.15-55.el6.centos.2        updates    156 k
+
httpd-tools          x86_64    2.2.15-55.el6.centos.2        updates    79 k
+
krb5-devel            x86_64    1.10.3-57.el6                base      504 k
+
krb5-libs            x86_64    1.10.3-57.el6                base      770 k
+
libcom_err            x86_64    1.41.12-22.el6                base        37 k
+
libcom_err-devel      x86_64    1.41.12-22.el6                base        33 k
+
libgcc                x86_64    4.4.7-17.el6                  base      103 k
+
libgfortran          x86_64    4.4.7-17.el6                  base      268 k
+
libgomp              x86_64    4.4.7-17.el6                  base      134 k
+
libselinux            x86_64    2.0.94-7.el6                  base      109 k
+
libselinux-devel      x86_64    2.0.94-7.el6                  base      137 k
+
libselinux-python    x86_64    2.0.94-7.el6                  base      203 k
+
libselinux-utils      x86_64    2.0.94-7.el6                  base        82 k
+
libss                x86_64    1.41.12-22.el6                base        42 k
+
libstdc++            x86_64    4.4.7-17.el6                  base      295 k
+
libstdc++-devel      x86_64    4.4.7-17.el6                  base      1.6 M
+
ncurses-base          x86_64    5.7-4.20090207.el6            base        61 k
+
ncurses-devel        x86_64    5.7-4.20090207.el6            base      641 k
+
ncurses-libs          x86_64    5.7-4.20090207.el6            base      245 k
+
nss-softokn-freebl    x86_64    3.14.3-23.3.el6_8            updates    168 k
+
sqlite                x86_64    3.6.20-1.el6_7.2              base      300 k
+
tzdata                noarch    2016i-1.el6                  updates    452 k
+
  
Transaction Summary
+
centosの場合、certbot は下図のように GUI もどきの CUI 画面を表示しますが、私は TeraTerm を使用しましたが
================================================================================
+
大丈夫なようです。
Install      30 Package(s)
+
Upgrade      44 Package(s)
+
  
Total download size: 90 M
 
</pre>
 
  
Is this ok [y/N]: y
+
====サーバのホスト名の入力====
 +
お使いの apache の設定によるとは思いますが、最初にサーバのホスト名を聞いてきます。
 +
恐らく 私の httpd.conf に ServerName がないからでしょう。ここにサーバのURLではなくホストのFQDNを入れ、
 +
OKを押します。
  
<pre>
+
[[ファイル:Let s Encrypt000.png]]
Downloading Packages:
+
 
(1/74): augeas-libs-1.0.0-10.el6.x86_64.rpm              | 314 kB    00:03
+
 
(2/74): bzip2-libs-1.0.5-7.el6_0.i686.rpm                | 36 kB    00:00
+
 
(3/74): ca-certificates-2015.2.6-65.0.1.el6_7.noarch.rpm | 1.2 MB    00:17
+
====e-mailアドレスの入力====
(4/74): cpp-4.4.7-17.el6.x86_64.rpm                      | 3.7 MB    00:38
+
次の画面では e-mail アドレスを入力します。特に今回メールのやり取りはなかったのですが、
(5/74): db4-4.7.25-20.el6_7.i686.rpm                    | 580 kB    00:04
+
何かに使うのでしょう。
(
+
 
 +
[[ファイル:Let s Encrypt001.png]]
 +
 
 +
 
 +
 
 +
====同意====
 +
ここで、同意を求められますので、Agree を選びます。何の同意なのか・・・まだ PDF は読んでません(^^;
 +
 
 +
[[ファイル:Let s Encrypt002.png]]
 +
 
 +
 
 +
 
 +
====Virtualhostの設定を指示====
 +
これは Virtualhost をどこに作るか聞いているようです。ssl.conf は元々なかったのですが、ここで ssl.conf を選ぶと
 +
ssf.conf が新規作成されました。
 +
 
 +
[[ファイル:Let s Encrypt003.png]]
 +
 
 +
====SSLへのリダイレクトの有無====
 +
とりあえず、MediaWiki等は、まだ設定で SSL対応にできていないので、HTTP/HTTPS の双方でアクセス可能を選択。
 +
  MediaWikiの設定の中に http プロトコルを指定しているところが残っているため(^^;
 +
処置が終われば apache の rewrite で プロトコルを強制書き換えする予定です。
 +
 
 +
[[ファイル:Let s Encrypt004.png]]
 +
 
 +
 
 +
 
 +
 
 +
====無事終了====
 +
 
 +
[[ファイル:Let s Encrypt005.png]]
 +
 
 +
最後に、3か月後には切れるから更新よろしくと手順が表示されます。コマンド一発で更新出来るのですが、
 +
めんどくさいです(^^;
 +
 
 +
cron で
 +
 
 +
certbot-auto renew
 +
 
 +
をスケジュール実行した方が良いかも。
 +
 
 +
[[ファイル:Let s Encrypt006.png]]
 +
 
 +
 
 +
 
 +
 
 +
念のため
 +
service httpd restart
 +
で apache を再起動。
 +
 
 +
https://www.ssllabs.com/ssltest/analyze.html?d=www.nakamuri.info
 +
 
 +
で試してみたら証明書は完璧だけど、いろいろボロクソに言われました(^^;
 +
いやタダで評価していただいて、ありがたい話です。
 +
 
 +
修正中です。
 +
 
 +
==証明書の期限の確認方法==
 +
 
 +
証明書更新後、期限がどうなったか気になりますが、certbot-auto renew では表示されません。
 +
以下のコマンドで確認できます。
 +
 
 +
cd /etc/letsencrypt/live/サイトのホスト名(www.nakamuri.info など)
 +
openssl x509 -in cert.pem -noout -dates
 +
 
 +
と打つと
 +
 
 +
notBefore=Feb 22 21:16:00 2017 GMT
 +
notAfter=May 23 21:16:00 2017 GMT
 +
 
 +
というように表示されます。notBeforeは証明書の生成日、notAfterが期限です。

2017年2月22日 (水) 23:08時点における最新版

メインページ>コンピュータの部屋>ConoHa VPS を使ってみた


ConoHa の LAMP環境 で、セキュリティ向上のため SSL を使えるようにするために、Let`s Encrypt から証明書を入手してみました。

条件

Let`s Encrypt で取得できるのはドメインの証明書です。ドメインの所有権を証明します。

Let`s Encrypt証明書を取得するには以下の3条件を作業前にクリアしておく必要があります。

  1. ドメインを所有していること
  2. ドメイン上で HTTP サーバが動いていて Let`s Encrypt からアクセスできること。
  3. ポート443が開いていること。iptables 等を使っている人は 443 を開けてください。

手順

認証書取得用ソフト certbot を github から入手し、インストールして起動します。

Certbot用ディレクトリを作ります

場所はどこでもよいので

mkdir certbot
cd certbot
git clone https://github.com/certbot/certbot
Cloning into 'certbot'...
remote: Counting objects: 41606, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 41606 (delta 1), reused 0 (delta 0), pack-reused 41599
Receiving objects: 100% (41606/41606), 11.67 MiB | 2.85 MiB/s, done.
Resolving deltas: 100% (29658/29658), done.


certbot の起動

cd certbot
./certbot-auto

これで OS が自動的に識別され、必要なパッケージがネットワークからロードされ certbot が起動します。

この起動の仕方だと一気に apacheの設定までやってしまいます。証明書の取得のみなら

./certbot-auto certonly

でいけるそうです。今回は設定までやって貰いました。

Bootstrapping dependencies for RedHat-based OSes...
yum is /usr/bin/yum
Loaded plugins: fastestmirror, security
 :
 :

certbotの操作

centosの場合、certbot は下図のように GUI もどきの CUI 画面を表示しますが、私は TeraTerm を使用しましたが 大丈夫なようです。


サーバのホスト名の入力

お使いの apache の設定によるとは思いますが、最初にサーバのホスト名を聞いてきます。 恐らく 私の httpd.conf に ServerName がないからでしょう。ここにサーバのURLではなくホストのFQDNを入れ、 OKを押します。

Let s Encrypt000.png


e-mailアドレスの入力

次の画面では e-mail アドレスを入力します。特に今回メールのやり取りはなかったのですが、 何かに使うのでしょう。

Let s Encrypt001.png


同意

ここで、同意を求められますので、Agree を選びます。何の同意なのか・・・まだ PDF は読んでません(^^;

Let s Encrypt002.png


Virtualhostの設定を指示

これは Virtualhost をどこに作るか聞いているようです。ssl.conf は元々なかったのですが、ここで ssl.conf を選ぶと ssf.conf が新規作成されました。

Let s Encrypt003.png

SSLへのリダイレクトの有無

とりあえず、MediaWiki等は、まだ設定で SSL対応にできていないので、HTTP/HTTPS の双方でアクセス可能を選択。

MediaWikiの設定の中に http プロトコルを指定しているところが残っているため(^^;
処置が終われば apache の rewrite で プロトコルを強制書き換えする予定です。

Let s Encrypt004.png



無事終了

Let s Encrypt005.png

最後に、3か月後には切れるから更新よろしくと手順が表示されます。コマンド一発で更新出来るのですが、 めんどくさいです(^^;

cron で

certbot-auto renew

をスケジュール実行した方が良いかも。

Let s Encrypt006.png



念のため

service httpd restart

で apache を再起動。

https://www.ssllabs.com/ssltest/analyze.html?d=www.nakamuri.info

で試してみたら証明書は完璧だけど、いろいろボロクソに言われました(^^; いやタダで評価していただいて、ありがたい話です。

修正中です。

証明書の期限の確認方法

証明書更新後、期限がどうなったか気になりますが、certbot-auto renew では表示されません。 以下のコマンドで確認できます。

cd /etc/letsencrypt/live/サイトのホスト名(www.nakamuri.info など)
openssl x509 -in cert.pem -noout -dates

と打つと

notBefore=Feb 22 21:16:00 2017 GMT
notAfter=May 23 21:16:00 2017 GMT

というように表示されます。notBeforeは証明書の生成日、notAfterが期限です。