Help us understand the problem. What is going on with this article?

ConoHaでLet's Encryptの証明書を入手する

More than 3 years have passed since last update.

HTTPS通信をしたい

HTTPSでWebサイトを表示させたいことはあると思います。
一応一昔前から無料でSSL証明書を発行できるサービスもあったのですが、ちょっと手間だったり、更新が面倒くさかったりします。

しかし、無料でSSL証明書を発行してくれるLet's Encryptはそこら辺結構簡単(準備ができればコマンド一発)だったりするので、ConoHaで使えるようにしたいと思います。

状況は以下です。

  • OSはCentOS 7
  • ドメイン example.com を持っているが、すでに色々設定しているため、 conoha.example.com をConoHaに割り当てて使いたい
  • 証明書だけほしい
    • ApacheではなくNode.JSなどでHTTPS通信させたいなど。

Apacheだったりドメイン管理を全部ConoHaに任せきりにするなら、もう少し簡単な記事があるはずなので、そちらを参照してください。

下準備

ドメインの設定

ConoHaの提供するDNSで特定のドメインを管理できるようにしておく必要があります。

ドメイン全てをConoHaで管理する場合は他の記事で紹介してるので探してください。

もし example.com を取得して色々使っていて、conoha.example.com 以下だけをConoHaの管理下に置きたい場合は、レジストラにNSレコードを追加してください。

追加するのは以下です。

ns-a1.conoha.io.
ns-a2.conoha.io.
ns-a3.conoha.io.

Value-Domainの場合

追加の仕方は各レジストラで異なると思うので、今回はValue-Domainの例を書いておきます。

ログインしていなければログイン。
ログインしていればコントロールパネルに移動します。

そこから無料ネームサーバー→ドメインのDNS設定とページを移動し、契約中のドメインのDNSを編集してください。

後は以下のNSレコードを追加すれば終了です。

ns conoha ns-a1.conoha.io.
ns conoha ns-a2.conoha.io.
ns conoha ns-a3.conoha.io.

これで conoha.example.com への問い合わせはConoHaのDNSに向かいます。

ちゃんと指定のドメインでVPSにアクセスできるようになれば大丈夫です。

ConoHaの設定

ConoHaは次のようにドメインを設定します。

DNSにドメイン追加

管理ページログイン後、左メニューのDNSに入り、ドメインを追加します(今回は conoha.example.com )。

ドメイン名を入力するだけで追加は可能です。

追加されたら、次のレコードを登録します。

タイプ 名称 TTL
A @ 3600 IPアドレス
逆引き設定

次に逆引きの設定もしておきます。

左メニューのサーバーから、設定するVPSの設定を開きます。

VPS設定の中に、PTRレコードなるものがあります。

ここのIPv4に設定するドメイン(今回は conoha.example.com )を追加します。

これでConoHa側の設定は終わりです。

DNSの設定

これで完了です。
反映完了までしばらく待ちましょう。

digコマンドでレジストラのDNSに問い合わせをするなどで確認も可能です。

大雑把に以下のような結果になっていれば大丈夫です。

;; ANSWER SECTION:
conoha.example.com. 3539    IN  A   IPアドレス

;; AUTHORITY SECTION:
conoha.example.com. 59  IN  NS  ns-a1.conoha.io.
conoha.example.com. 59  IN  NS  ns-a3.conoha.io.
conoha.example.com. 59  IN  NS  ns-a2.conoha.io.

無事ドメインの設定が完了し、SSHなどで接続できるようになったら次の作業に移ります。

ポート開放

ConoHaは最初Firewallでほとんどの通信が切られています。
証明書の特にhttp/https(80/443)ポートの開放が必要なので、開放します。

ポート確認

以下コマンドで現状を把握します。

firewall-cmd --list-all

多分初期状態だと以下のようになっているはずです。

public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

HTTP/HTTPS通信の有効化

1,2行目のコマンドはroot権限が必要なので、一般ユーザーの場合は sudo を付けてください。

firewall-cmd --permanent --add-service=http --zone=public
firewall-cmd --permanent --add-service=https --zone=public
firewall-cmd --reload

確認

再度確認します。

firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client http https ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

servicesのところに、httphttps が追加されていれば完了です。

必要なアプリケーションとか

次に必要なものをインストールします。

面倒なのでroot権限で作業します。

yum install epel-release
yum install certbot python-certbot-apache

証明書の入手

めんどうなのでroot権限で作業します。

適当な作業ディレクトリを作ってそこに移動してください。

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/

ここで次のようなコマンドを実行して、証明書を入手します。
コマンド実行前に、Webサーバーが起動している場合は、一度終了しておいてください。

./letsencrypt-auto certonly --standalone --email your@email.address -d conoha.example.com

--email にはあなたのメールアドレスを指定してください。

-d には発行するドメインを指定してください。

実行後、次のように表示されれば成功です。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/conoha.example.com/fullchain.pem. Your cert
   will expire on 2017-02-17. To obtain a new or tweaked version of
   this certificate in the future, simply run letsencrypt-auto again.
   To non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

これで /etc/letsencrypt/live/conoha.example.com/ に証明書がダウンロードされます。

最後に

証明書の取得ができる状態までもってこれれば、後は更新もできるでしょう。

大雑把に証明書周りのファイルを見たところ、シンボリックリンクで本体は別のところにあるので、更新しても同じパスでアクセスできるようになっているようです。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away