らをた広島

食べ歩きブログ

ASUS Vivobook E200HAをdebian10(buster)サーバーにするまで5

f:id:unkosuzou:20200810093817p:plain

9、サーバーのSSL

SSLとはインターネット上でデータを暗号化して送受信する仕組み(プロトコル)でURLがhttp://から始まるのではなくhttps://で始まるサイトで判別できる。

昨今の検索サイトはSSL化してないサイトを「安全ではない」と評価し上位に表示しない傾向にあるので見られたくないサイトでもない限りSSL化は実質必須であると思われる。

 

HTTPS は 443/TCPUDPを使用するのでポート開放。

 

f:id:unkosuzou:20200831062730j:image

SSL証明書を取得する (Let's Encrypt)

 

SSLなう!にアクセスしてLet's Encrypt へ登録しSSL証明書発行する。

すでに登録している場合は更新をする。

詳しくはここらへんのサイトを参考に。

Let's EncryptのApache用管理コマンドのインストール
# apt install python-certbot-apache
# certbot --apache

 

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 登録メルアド
Starting new HTTPS connection (1): 登録ドメイン

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://登録ドメイン/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel:

同意するか聞かれるので"A"を入力し、returnキーを押す。

 

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o:

Let's Encryptパートナーにメールアドレスを公開していいか聞かれるので"N"を入力し、returnキーを押す。

 
Running pre-hook command: apachectl stop
Obtaining a new certificate
Resetting dropped connection: 登録ドメイン
Performing the following challenges:
http-01 challenge for www.tommys-web.com
Waiting for verification...
Cleaning up challenges
Running post-hook command: apachectl start
Created an SSL vhost at /etc/httpd/conf/httpd-le-ssl.conf
Deploying Certificate to VirtualHost /etc/httpd/conf/httpd-le-ssl.conf
Enabling site /etc/httpd/conf/httpd-le-ssl.conf by adding Include to root configuration

Please 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 for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

httpsにリダイレクトするか聞かれるので"2"を入力し、returnキーを押す。

 

これで

https://登録ドメイン/

でアクセスしてページが表示されたらとりあえず完成。

 

f:id:unkosuzou:20200831062756j:image

10、SSL化のApache2 の設定

# cd /etc/letsencrypt/live

# ls

でここあるフォルダ名が「ドメイン.jp」であることを確認。

 

# vi /etc/apache2/sites-available/default-ssl.conf 


# 3行目:管理者アドレス変更

ServerAdmin webmaster@ドメイン.jp

DocumentRoot /home/ユーザー名/public_html


# 32,33行目:[1]で取得した証明書に変更

SSLCertificateFile /etc/letsencrypt/live/ドメイン.jp/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン.jp/privkey.pem

# 42行目:コメント解除して[1]で取得したチェインファイルに変更

SSLCertificateChainFile /etc/letsencrypt/live/ドメイン.jp/chain.pem

 

# /sbin/a2ensite default-ssl

Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2

 

# /sbin/a2enmod ssl

Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Enabling module socache_shmcb.
Enabling module ssl.
See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates.
To activate the new configuration, you need to run:
systemctl restart apache2

 

# systemctl restart apache2

 

 

11、暗号化通信のためのPostfix設定

 

# vi /etc/postfix/main.cf

# 最終行に追記

smtpd_use_tls = yes
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ドメイン.jp/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.ドメイン.jp/privkey.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

 

# vi /etc/postfix/master.cf

17-21行目 : 以下のようにコメント解除

submission inet n - y - - smtpd
-o syslog_name=postfix/submission
# -o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_tls_auth_only=yes

29-31行目 : コメント解除

smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes

 

# systemctl restart postfix

ドメイン.jpはご自身のドメイン

 

12、最後にLet's Encryptの証明書を90日以内に手動で更新する。
アパッチの停止
# /sbin/apachectl stop
証明書の強制手動更新
# certbot renew --force-renew
ツラツラと更新成功しましたと表示される。
アパッチ再起動
# /sbin/apachectl restart

毎度のことながらこの記事は自分が忘備録として書いているだけなので正確性も保証しかねるし問題が起きても質問にも答えられないし責任も取れない。
debianはフリーのLinuxOSなのでそのへんは全て自己責任ということになるのを覚悟で実行してもらいたい。