最近のブラウザで http接続のページが警告が表示されるようになりました。「https」という常時SSL対応していない「http」のWebサイトには「保護されていない通信」と警告が表示されます。
一般ユーザーにはあまり良い印象を与えませんね。「保護されていない・・・・」もっと良い訳ないでしょうかね。
SSL化といっても有償証明書はピンキリです。年間数十万円の費用がかかったりしする場合がありますね。(激安で1000円ぐらい)
今回は無料の証明書である 「Let’s Encrypt」という証明書を試してみます。
概要の抜粋です。詳細はLet’s Encrypt 総合ポータルにて確認。
- Let’s Encrypt は、無料で利用できる自動化されていてオープンな認証局(CA)です。公共の利益を図る目的で Internet Security Research Group (ISRG) が運営しています。
- 有効期間が90日間である。 漏洩した秘密鍵や誤発行された証明書が短い期間で無効になることで、被害を抑えることができる
- 運用の自動化
ウェブサーバ上で動作しているソフトウェアが、面倒な手間無しに Let’s Encrypt から証明書を取得することができます。
これらの仕組みは、安全に構成されており、証明書の更新も自動化できます。 - Let’s Encryptあh ワイルドカード証明書も対応完了しているとのことです。
証明書の取得・更新の際に、DNS の「TXT レコード」にワンタイムトークンを登録する必要があります。
Let’s Encrypt 総合ポータル
コマンド解説(コマンドリファレンス)
- サクラネット vps centos6 Apache/2.2.15
12345678910111213141516171819202122232425262728293031323334353637# cat /etc/centos-releaseCentOS release 6.10 (Final)# apachectl -vServer version: Apache/2.2.15 (Unix)Server built: Jun 19 2018 15:45:13// -------------------// Python 2.7 インストール// -------------------# yum -y install centos-release-scl-rh# yum -y install python27// 動作確認# python --versionPython 2.6.6# scl enable python27 bash# python --versionPython 2.7.8# exit// 自動有効設定# python --versionPython 2.6.6# echo 'source /opt/rh/python27/enable' > /etc/profile.d/python27.sh# source /etc/profile# python --versionPython 2.7.8//-------------------// certbotをインストール//-------------------# git clone https://github.com/letsencrypt/letsencrypt//-------------------// 証明書取得// centos–release-sclでインストールしたパッケージはsclコマンドを使うことで利用可能になる//-------------------# cd certbotをインストールしたフォルダーに移動# certbot-auto・・ - KAGOY・JAPAN centos7 Apache/2.4.6
12sudo yum install epel-releasesudo yum install certbot python-certbot-apache - 実行結果 (centos7 の場合)
ほとんど一瞬で作成され リダイレクトの選択画面になります。
Webサーバーを再起動することなく https:// のページが表示されました。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657# certbotSaving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator apache, Installer apacheStarting new HTTPS connection (1): acme-v01.api.letsencrypt.orgWhich names would you like to activate HTTPS for?-------------------------------------------------------------------------------1: sslsyte1.sample.jp #現在運用されているWebサイト2: sslsyte2.sample.jp # /etc/httpd/conf.d/vhost.conf に定義しているサイトの3: sslsyte3.sample.jp #一覧が表示される・・-------------------------------------------------------------------------------Select the appropriate numbers separated by commas and/or spaces, or leave inputblank to select all options shown (Enter 'c' to cancel): 1 #SSL化する予定のサイトを選択Obtaining a new certificatePerforming the following challenges:http-01 challenge for xxxxxxxx.xxxxx.jpWaiting for verification...Cleaning up challengesCreated an SSL vhost at /etc/httpd/conf.d/vhost-le-ssl.confDeploying Certificate to VirtualHost /etc/httpd/conf.d/vhost-le-ssl.confPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.-------------------------------------------------------------------------------1: No redirect - Make no further changes to the webserver configuration.2: Redirect - Make all requests redirect to secure HTTPS access. Choose this fornew sites, or if you're confident your site works on HTTPS. You can undo thischange by editing your web server's configuration.#ssl化される前のサイト(http://xxxxx)にアクセスすると https://のサイトにリダイレクトする場合は 2#リダイレクトさせない場合は 1を選択。-------------------------------------------------------------------------------Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2Redirecting vhost in /etc/httpd/conf.d/vhost.conf to ssl vhost in /etc/httpd/conf.d/vhost-le-ssl.conf<font color=red>ssl設定ファイルが保存される場所、今回の実行ではWebサーバーを再起動せずに SSL化された。(<a href="https://letsencrypt.jp/command/" rel="noopener" rel="noopener" target="_blank">要確認 実行時オプション</a>)-------------------------------------------------------------------------------Congratulations! You have successfully enabled https://xxxxxxxx.xxxxx.jpYou should test your configuration at:https://www.ssllabs.com/ssltest/analyze.html?d=xxxxxxxx.xxxxx.jp-------------------------------------------------------------------------------IMPORTANT NOTES:- Congratulations! Your certificate and chain have been saved at:/etc/letsencrypt/live/xxxxxxxx.xxxxx/fullchain.pemYour key file has been saved at:/etc/letsencrypt/live/xxxxxxxx.xxxxx.jp/privkey.pemYour cert will expire on 2018-10-03. To obtain a new or tweakedversion of this certificate in the future, simply run certbot againwith the "certonly" option. To non-interactively renew *all* ofyour certificates, run "certbot renew"- If you like Certbot, please consider supporting our work by:Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donateDonating to EFF: https://eff.org/donate-le