
へっぽこプログラマーなわたしが自分でつくったサービスを公開しようとおもいたち、準備開始です。
今回は複数のサイトを同時に無料でssl化(https)する方法を書きます。
個人開発を始めようと思っている人の参考になればと思います。
ちなみにわたしの環境です。
VPS:Conoha
OS:Ubuntu
Client:Windows10
web:apache2
SSL化とは
SSL化とは簡単にいうとhttpをhttpsにする作業です。
httpはHypertext Transfer Protocol
httpsはHypertext Transfer Protocol Secure
secureがあるかないかの違いなのですが、この違いはかなり大きいです。
暗号化されているかどうかです。
例えば、カフェなどで、よくわからないwifiに接続して、どこかのサイトにログインした場合
暗号化していないサイト(httpではじまる)でパスワードを入力するとすると、
カフェ側(wifiを提供している側)なら頑張ればパスワードは見ることが可能です。
暗号化しているサイト(httpsではじまる)でパスワードを入力するとすると、
wifi提供側にもパスワードは暗号化されているので見ることができません。
最近はhttpsで作っていないサイトは警告が表示されたりします。
この作業を今回無料でおこないます。![]()
Let’s Encryptをインストール
まずは、httpの状態でブラウザでアクセスできることが前提となります。
Let’s encript をインストール
sudo apt install certbot
Let’s encriptの設定、証明書の作成
sudo certbot certonly --webroot -w /var/www/html -d yyy.com -d www.yyy.com -w /var/www/toola/client -d toola.yyy.com -d www.toola.yyy.com -w /var/www/toolb/client -d toolb.yyy.com -d www.toolb.yyy.com
このコマンドで一気に3つのサブドメインへ証明書を作っています。
-w がwebrootの場所 -d がドメインです。 一つ目のwebroot -w /var/www/html -d yyy.com -d www.yyy.com 二つ目のルート -w /var/www/toola -d toola.yyy.com -d www.toola.yyy.com 三つ目のルート -w /var/www/toolb -d toolb.yyy.com -d www.toolb.yyy.com
https用にapacheのconfを修正
cd /etc/apache2/sites-available/
修正前:toola.yyy.com.conf
<VirtualHost *:80>
ServerName toola.yyy.com
ServerAlias www.toola.yyy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/toola/client
ErrorLog "/home/xyz/mylogs/apache2/toola.yyy.com_error.log"
CustomLog "/home/xyz/mylogs/apache2/toola.yyy.com_access.log" common
</VirtualHost>
修正後:toola.yyy.com.conf
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName toola.yyy.com
ServerAlias www.toola.yyy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/701redux1/client
ErrorLog "/home/xyz/mylogs/apache2/toola.yyy.com_error.log"
CustomLog "/home/xyz/mylogs/apache2/toola.yyy.com_access.log" common
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yyy.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yyy.com/privkey.pem
</VirtualHost>
修正前:toolb.yyy.com.conf
<VirtualHost *:80>
ServerName toolb.yyy.com
ServerAlias www.toolb.yyy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/toolb/client
ErrorLog "/home/xyz/mylogs/apache2/toolb.yyy.com_error.log"
CustomLog "/home/xyz/mylogs/apache2/toolb.yyy.com_access.log" common
</VirtualHost>
修正後:toolb.yyy.com.conf
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName toolb.yyy.com
ServerAlias www.toolb.yyy.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/701redux1/client
ErrorLog "/home/xyz/mylogs/apache2/toolb.yyy.com_error.log"
CustomLog "/home/xyz/mylogs/apache2/toolb.yyy.com_access.log" common
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/yyy.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yyy.com/privkey.pem
</VirtualHost>
設定の反映
sudo a2ensite toola.yyy.com.conf sudo a2ensite toolb.yyy.com.conf アパッチの再起動 systemctl restart apache2.service
動作確認
urlへアクセスして動作確認
https://toola.yyy.com
https://toolb.yyy.com
証明書を自動更新
この無料の証明書は更新作業を行わないと期限がきれてしまいます。
自動更新するように設定します。
cronに設定 crontab -e 毎週日曜10:00に実行 # m h dom mon dow command 00 10 * * 0 root certbot renew
まとめ
複数のサイトを同時に無料でssl化【https】で行いました。
これで、アプリを世界へ公開する準備ができました。
おすすめのオフラインプログラミングスクールに関しては「おすすめのオフラインプログラミングスクール【無料体験あり】」で詳しく解説していますので、併せてご活用ください。
おすすめのオンラインプログラミングスクールに関しては「おすすめのオンラインプログラミングスクール【無料体験あり】」で詳しく解説していますので、併せてご活用ください。
未経験者でプログラマになりたい方に関しては「【転職】未経験者でプログラマになりたい人、なれますよ!【再現性あり】」で詳しく解説していますので、併せてご活用ください。
フリーランスエンジニアにおすすめのエージェント(いろいろ)に関しては「フリーランスエンジニアにおすすめのエージェントいろいろ」で詳しく解説していますので、併せてご活用ください。


コメント