■FTPDの設定(FTPSでの接続)
FTPで接続する際に暗号化通信を使用する
EC2をFTPS化する方法 - Qiita
https://qiita.com/Itaru7/items/c7b1c42e1da4dfe084a6
【vsftpd】FTPをSSL/TLSで暗号化する設定 - Qiita
https://qiita.com/aqmr-kino/items/ad80258eacd69a78064c
CentOS7でFTPサーバ構築してみた | Developers.IO
https://dev.classmethod.jp/articles/vsftpd_on_centos7/
CentOS7でFTPSを設定してみた | Developers.IO
https://dev.classmethod.jp/articles/ftps_on_centos7/
【CentOS】vsftpdでFTPSを構築しSSL暗号化通信の設定をする(証明書作成) - 中堅プログラマーの備忘録
https://www.chuken-engineer.com/entry/2019/09/05/141448
FTPSにおけるexplicit(明示モード)とimplicit(暗黙モード)の違い
http://tooljp.com/windows/doc/ftp-over-tls-Implicit-explicit/ftp-over-tls-Implicit-explicit.html
■証明書の作成
# cd /etc/pki/tls/certs
# make vsftpd.pem
umask 77 ; \
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
/usr/bin/openssl req -utf8 -newkey rsa:2048 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 ; \
cat $PEM1 > vsftpd.pem ; \
echo "" >> vsftpd.pem ; \
cat $PEM2 >> vsftpd.pem ; \
rm -f $PEM1 $PEM2
Generating a 2048 bit RSA private key
.........................+++
.................................................+++
writing new private key to '/tmp/openssl.jhViOW'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
… 国名を設定
State or Province Name (full name) []:Tokyo
… 都道府県名を設定
Locality Name (eg, city) [Default City]:Shibuya
… 市区町村名を設定
Organization Name (eg, company) [Default Company Ltd]:refirio.net
… 組織名を設定(なんでもいい)
Organizational Unit Name (eg, section) []:
… 空Enter(もしくは部署名を設定)
Common Name (eg, your name or your server's hostname) []:refirio.net
… コモンネーム(Webサーバー名)を設定。SSL購入時に申請するものと一致させる
Email Address []:refirio@example.com
… 管理者メールアドレスを設定
■設定の変更
# vi /etc/vsftpd/vsftpd.conf
… ファイルの最後に設定を追加
ssl_enable=YES
ssl_request_cert=NO
#require_cert=NO
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
ssl_tlsv1_1=YES
ssl_tlsv1_2=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
syslog_enable=YES
debug_ssl=YES
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
rsa_private_key_file=/etc/pki/tls/certs/vsftpd.pem
# systemctl restart vsftpd
■接続
FTPソフトの接続設定で、暗号化の項目で
「使用可能なら明示的な FTP over TLS を使用」もしくは
「明示的な FTP over TLS が必要」を選択する
接続時に「サーバーの証明書は不明です」や「証明書は自己署名です」などが表示されるが、問題無いので証明書を信用して接続する
■メモ
接続する人は限られているので、本番環境でも自己署名の証明書で問題無い?
証明書の期限(365日)が切れると接続できなくなる?その場合、同じ手順で証明書を再発行すればいい?
要確認