Для каждого веб-сервера нужен фтп. Не будем прыгать много, а сразу перейдем к делу.

Для начала настроим сам /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

pasv_enable=YES

pasv_min_port=12000

pasv_max_port=12100

ssl_enable=YES

allow_anon_ssl=NO

force_local_data_ssl=NO

force_local_logins_ssl=NO

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

rsa_cert_file=/etc/vsftpd/vsftpd.pem

rsa_private_key_file=/etc/vsftpd/vsftpd.key

Далее займемся генерацией ключа:

# openssl genrsa -des3 -out vsftpd.key 1024
# openssl rsa -in vsftpd.key -out vsftpd.pem
# openssl req -new -key vsftpd.key -out vsftpd.csr
# openssl x509 -req -days 366 -in vsftpd.csr -signkey vsftpd.key -out vsftpd.crt

Если фтп сервис старутет, значит всё отличненько. Открываем порты в фаерволе:

-A RH-Firewall-1-INPUT -m state —state NEW -p tcp —dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp —dport 12000:12100 -j ACCEPT

Но с большой долей вероятности всплывёт косяк с загрузкой файлов, если у вас установлен SELinux (узнать можно набрав команду sestatus)

Для решения этой проблемы вы можете либо отключить его полностью, либо отключить его для фтп. Я выбираю второе:

# setsebool ftpd_disable_trans 1

После этого перезагрузите сервис фтп.

Создание сертификатов для SSL

Создание ключа

Первым делом необходимо создать приватный ключ (private key):

# openssl genrsa -des3 -out domain.ru.key 2048
Generating RSA private key, 2048 bit long modulus
……………………………………..+++
……………………………….+++
e is 65537 (0x10001)
Enter pass phrase for domain.ru.key:
Verifying — Enter pass phrase for domain.ru.key:

При создании ключа необходимо указать ключевую фразу (и запомнить ее).

Создание подписанного сертификата

После того, как сгенерирован ключ, можно создавать самоподписанный сертификат (CSR — Certificate Signing Reques):

# openssl req -new -key domain.ru.key -out domain.ru.csr
Enter pass phrase for domain.ru.key:
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) [AU]:RU
State or Province Name (full name) [Some-State]:Russia
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Domain.Ru
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:domain-2.ru
Email Address []:ssl@domain-2.ru

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Удаление пароля из ключа

Неприятной особенностью ключа с паролем является то, что Apache или nginx будет регулярно спрашивать пароль при старте. Очевидно, что это не очень удобно (если только кто-то не находится постоянно рядом на случай перезагрузки или аварийной остановки). Для удаления ключа из пароля необходимо выполнить следующее:

# cp domain.ru.key domain.ru.key.orig

# openssl rsa -in domain.ru.key.orig -out domain.ru.key
Enter pass phrase for domain.ru.key.orig: <пароль-который-указывался-при-создании-domain.ru.key>
writing RSA key

Генерация SSL сертификата

Далее, создаем сам SSL сертификат:

# openssl x509 -req -days 365 -in domain.ru.csr -signkey domain.ru.key -out domain.ru.crt
Signature ok
subject=/C=RU/ST=Russia/O=Domain.Ru/CN=domain-2.ru/emailAddress=ssl@domain-2.ru
Getting Private key

Теперь есть все, что необходимо для создания SSL-соединений.

Правильное расположение SSL сертификатов

Заключительным шагом в создании SSL сертификата будет распределение полученных файлов в соответствующие директории. Во-первых, копируем сам сертификат:

# cp domain.ru.crt /etc/pki/tls/certs/

Во-вторых, копируем ключ:

# cp domain.ru.key /etc/pki/tls/private/

И в-третьих, удаляем, все то, что было создано в текущей директории:

# rm domain.ru.crt domain.ru.key domain.ru.csr domain.ru.key.orig

Добавляем сертификаты в Apache

Редактируем файл /etc/httpd/conf.d/ssl.conf и меняем..

SSLCACertificateFile /etc/pki/tls/certs/domain.ru.crt
SSLCACertificateKeyFile /etc/pki/tls/domain.ru.key

Сохраняем файл и перезапускаем апач.

# service httpd restart