当社はIT技術のオンライン教育を得意としたセミナー専門会社です。

ITエンジニアの技術力UPをお約束します。

SSL証明書 無料の Let’sEncryptの発行トラブルを解決する。

SSL証明書 無料の Let’sEncryptの発行トラブルを解決する。


無償のSSL証明書発行で有名なLetsEncryptですが、うまく発行されない場合が多かったりします。最初の登録で3ヶ月後の更新を忘れたり、既に有償のSSLを使っていて期限を過ぎて更新しないと行けない。サーバ移転のときはどうするの?

長く使っていると概ねこのような問題に遭遇します。今回はLetsEncryptを発行するときのツボを解説したいと思います。

LetsEncryptには2種類の登録モードがある。

2種類のモード
  • ・スタンドアロン モード
  • ・WEBルート モード

スタンドアロン モード

WEBルート モード

この2つのモードの違いですが、スタンドアロンモードはWEBサーバの停止が必要です。一方WEBルート モードはWEBサーバの停止が必要ありません。

初心者にありがちなミス

  • Linuxサーバの443、80ポートをオープンしていない。iptablesやfirewalldでポートをオープンしましょう。
  • DNSサーバに事前に発行ドメインのIPアドレス登録が抜けている。LetsEncrypt発行前にかならずDNS登録を行いましょう。

既に有償のSSLライセンスが切れてLetsEncryptを使いたい場合

WEBサーバ停止することなく、「WEBルート モード」で発行が出来ます。もし失敗するようであればWEBサーバ停止してスタンドアロンモードで試してみてください。念の為、初心者の方には言っておきますがどちらのモードもSSL証明書の登録・更新設定をしたら再起動をお忘れなく。

初回の登録からの期限忘れで手動及び自動更新が失敗。

このケースでは、基本スタンドアロン モードでの新規登録となります。ただ単純にスタンドアロンモードで登録しても失敗することでしょう。以下のファイルを削除してください。

  • # rm -rf /etc/letsencrypt/live/www.test-serv.net
  • # rm -rf /etc/letsencrypt/archive/www.test-serv.net

以上の作業が終わったら、再度新規発行してみてください。大概はうまくいくはずです。必ずWEBサーバを止めて、スタンドアロンモードで発行してください。

LetsEncryptを使用していましたが、サーバ移転で別のホスティングへ移したら登録できない。

/etc/letsencryptファイルを固めて新サーバへ持ってくれば、有効期限に達するまではすんなり使えます。問題は期限が来た時に起きます。この場合も更新ではなくて新規登録が必要。上記のSSL期限忘れと同じ要領の作業を行ってください。必ずサーバ移転先のIPアドレスにドメインが変更されていることを確認してから発行してください

既にDNS CAAレコードを設置している場合で、新規発行が失敗する。

以前使用していた有償などのCAAレコードとLetsEncryptのIssuer(発行者)が異なるため失敗している可能性があります。この場合はCAAレコードのissueをletsencrypt.orgに変更すると登録が出来ます。

キー発行時のエラー「urllib2.URLError: urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)」

このエラーは幾つか原因があるが最近のletsencryptはpython3を使う。更に証明書が古くなっているので更新する必要がある。大抵は古いバージョンLinuxを使っていると起こる問題だと思う。 python3がデフォルトになっていない場合はpython3に(sudo update-alternatives –config python)で切り替えてみよう。 次に証明書の更新だが次のようにする。

alternate未登録のケースの表示

alternate未登録のケースの場合は自分で登録する。

証明書の更新処理を行う。

以上を行った上でキーの発行を再度実行してみるとうまく行くはずだ。

タグ: , , ,

Let’s EncryptでSSL無料証明書を使ってみる


世の中では7月24日のChrome68の驚異に向かってSSL化へ着実にサイトを切り替えるところが多くなっています。でもサイトを沢山持っているところはかなりのお金の負担になりますね。どうするんだろう?と思ってたらLet’s EncryptでSSL無料証明書が作れるんだね。でも3ヶ月更新のようです。

色々と今後このまま続くと思えないが当座は目下SSL化を目論んでいるGoogleにしてもこの証明書は短期的に見ればまともなサイトの救済策になるのであったほうが良い。長期的には排除か順位評価を低くするというシナリオは見えてくる。個人的には、テストサイトでは十分利用価値があるとは思っています。特に今はドメインのワイルドカード証明書も作れるようだからプロトタイプサイトでホスト名だけ変更して、テストドメインは同じで使えば作業工数が減りますね。

使わないであれこれ言うよりは、まずは使ってみるというのは大事だね。ということで使ってみましたので、その備忘録を残したいと思います。

Let’s Encryptシステムのインストール方法

ドメインはtest.serve.netと仮定してやってみました。必ずそのサイトが稼働しているサイトで作業を行う必然性があります。作業する際にそのドメインのドキュメントルート配下にもコマンド実行時に細工が入るらしいので必ず稼働しているドメインである必要があるのです。インストールする場所はどこでも良いのだけど外部ツールの導入は大体が/usr/localもしくは/optなので今回は/optで行ってみたいと思います。令和3年11月28日に記事更新しました。記事の下部にCentOS8/Amazon Linux2でLet’s Encryptを使う場合を掲載しています。今はこの方法が本流です。前段のやり方は既に廃れて無効になっていると思います。導入済みの方がアップデートは可能ですが新規で導入の場合は下部のやり方を参考にしてください。

ドキュメントルートに処理と認証を行い、対象ドメイン用の証明書群を作る。

certbot-autoコマンドは-wでドキュメントルートを指定し、-d で対象ホスト名(fqdn)、–emailで更新通知メルアドを指定します。

証明書は/etc/letsencrypt/live/test.serve.netのフォルダーに作成されます。

※通常はcert.pem,chain.pem,privkey.pemがあれば十分。

WEBサーバの再起動を行う

以下を実施すればhttpsでアクセスが行なえます。

使ってみた感想

Let’s EncryptはPCだけではなくてスマホから使っても全く問題はなかった。短期的にはオールhttps化の回避策にはなるだろうと思うが、これはネットワーク機器用や実験用に使うべきと思います。恒久的に使ってはいけません。理由は認証が自動で所有者の正当な認証がされないSSL発行は危険だし、実際事件が起きているようなのでGoogleが恒久的には到底許すと思えない。ある程度の猶予期間や混沌とする検索エンジン世界の次のどうあるべきかが見えてきた段階で消滅するか限定的な使い方に変化するだろうと予測する。

ライセンス更新処理

放おって置くと3ヶ月でライセンスが止まるため、更新処理が定期的に必要です。更新が成功したらWEBサーバを再起動してください。

CentOS8/Amazon Linux2でLet’s Encryptを使う場合

EPELを予めインストールしておいてください。

Snapでインストールしてlet’s Encryptをやる方法

この方法が今では主流とされている。EPELは予め入れておくこと。

タグ: , , , ,