表題のとおりです。
「プリントライ」は現在、有料のSSL「SecureCore」を使用しています。
サービスの契約は「ネットオウル」経由です。
無料のSSL「Let’s Encrypt」もいいですけどね。
「SSL」タグアーカイブ
PHPでSSLの情報を取得する
以前にも少し仕掛けていたのですが、PHPでSSLの情報を取得するクラスを作りました。
正確には、作りかけていたクラスをしっかりした形に直しました。
ベースとなっていたソケットを使用する方法に、エラー判定や新しいメソッドを追加したりした上で、
cURLを使用する方法を追加しました。
モードを切り替えることで、ソケットとcURLを使い分けられるわけですが、VPSでもレンサバでも、どっちも動くみたいなので、1つのクラスに両方を実装した意味があったのかどうかは謎です。
で、新しく用意したクラスを使ったツールは、「SSL情報取得」にて公開しました。
サーバー管理ツールに組み込んだり、結果をフックして通知させたり、API的に使えるようになるといいかもですね。
いい加減に、Let’s Encryptの更新漏れを見落とさないようにしないと…
SSLの有効期限を得る方法のメモ
PHPで必要になって調べていましたが、ストリームを使うよりもコマンドを叩いたほうが確実で速いのでした。
openssl s_client -connect exsample.com:443 -servername exsample.com < /dev/null 2> /dev/null | openssl x509 -text | grep Not
仮想ホストの場合は-servernameを入れておかないと、メインのドメイン名で取得しに行くので正しくない値が返ってくる。
…WordPressの新しいエディタ、本当に使いにくい。
やっと1台のサーバーにSSLサイトを複数設置させられた
Apacheの設定の話です。
NSIとかSANsで1つのSSL証明で複数のSSLサイトを認証させる場合。
ルートに設定を書いても駄目で、仮想ホストごとにSSLの設定を書くべし。
細かい説明はなしで、とりあえずメモ程度に
以下のコードを繰り返し書くだけでいい。
とにかく
NameVirtualHost *:80
NameVirtualHost *:443
を忘れると思い通りに動かない
最低限の設定なので、実際にはもっとしっかり書くこと
httpd.conf
NameVirtualHost *:80
NameVirtualHost *:443
#---- www1.exsample.com
<VirtualHost *:80>
ServerName a.exsample.com
RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /home/www/public_html
ServerName www1.exsample.com
#--- SSL
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/www1.exsample.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www1.exsample.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/www1.exsample.com/chain.pem
</VirtualHost>
#---- /www1.exsample.com
Let’s Encrypt の複数ドメイン対応SSL導入に手こずる
SANs証明とかいうやつで、1つの証明書で複数のドメインに対応させるやつです。
細かいことは省きます。
やりたかったこと
複数のホスト名で、1つのシステムにアクセスする
システムでホスト名を判別しているのでサーバー側ではイジる必要がない
まずはSSL化したいホスト名でアクセスできるようにApacheを設定して、1つ目のサーバーのドキュメントルート下の「/.well-known/acme-challenge/」にファイル書き込めるようにアクセス権を設定、さらにAliasを張って他のホスト名からも見られるようにする
※-dで指定するけど今回はパス
./certbot-auto certonly –webroot -w /home/www/public_html/ -d san1.exsample.com -d san2.exsample.com
重要なのは、ホスト名ごとに仮想サーバーを設定すること。別名ではcertbotが認識してくれない
※させる方法もあるのかな?
覚えておくこと
導入できたSSLは1つ目のホスト名で登録される
SSL証明を見るとDNS設定で同居しているホスト名が見えるので、バレては困る場合は使えない(IPでもわかるがサーバーが同じだからと初留者が同じとは限らないが、SSLでは所有者が同じでないと同居できない)
これでVPSを纏めることができる、かなり節約になるかな。
余裕できたらサイトを量産するぞ~
SSL「Let’s Encrypt」を自動更新するためのメモ
ここはCnetOS6+Apache httpdでLet’s Encryptを自動更新するためのメモです。
カレントディレクトリを作業用など適当に変更して
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
多分上のコマンドでいろいろ追加インストールしたり、バージョンが違うので揃えろとかいわれるので諸々対応を済ませ
certbot certonly --agree-tos --webroot -w /var/www/html/ -d example.com
上のようにサーバーの設定を入力すると
/etc/letsencrypt/live/example.com/
ここにpemが生成されるので
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/example.com/chain.pem
を設定してウェブサーバーを再起動
ちなみに、Apacheが2.4.8以上はfullchain.pemにしないといけないらしい。
そして、cronに次のコマンドを月イチ実行で登録する。
/usr/bin/certbot-auto renew --post-hook "service httpd reload"
問題ないかどうかはとりあえず実行すれば確認できる。
更新頻度が高いとまだしなくていいよって怒られるようです。
封筒47のSSLを更新
封筒47のSSLを更新しました。
webss.inのSSLを更新
webss.inのSSL(Let’s Encrypt)を更新しました。
3ヶ月に一度の恒例行事です。
webss.inのSSLを更新
定例ですが、webss.inで使用しているSSL「Let’s Encrypt」の3ヶ月更新を行いました。
封筒47のSSLを更新
封筒印刷専門サイト「封筒47」のSSL、更新期限が近づいていたので更新しました。
例によって無料のSSLです。
あまり売上がないので相応なSSLです。
もうちょっと売り上げ上げたいなぁ…