Как установить ssl (https) для Вашего сайта на Ubuntu Linux - Два пути SSL

У меня есть веб-сайт, основное требование состоит в том, чтобы сделать тот веб-сайт безопасным при помощи https

Когда клиентский доступ от другой машины, это должно работать, только если сертификат загрузил в настройках браузера. Если не это должно запретить доступа к тому веб-сайту. Может любой помогать мне достигнуть этого.

Я использую Ubuntu 14.04, Сообщенную мне, если Вам люди больше нужны детали

3
задан 14 October 2016 в 00:36

1 ответ

Это tunrs, что официальная документация Apache (см. в этой ссылке) действительно хорошо сделана на этом предмете.

Короче говоря, необходимо закончить с чем-то вроде этого:

LoadModule ssl_module modules/mod_ssl.so

Listen 443
<VirtualHost *:443>
   DocumentRoot /var/www/yoursite/
   <Directory /var/www/yoursite/>
     AllowOverride All
     order allow,deny
     allow from all
   </Directory>

   ServerName www.example.com
   SSLEngine on
   SSLCertificateFile /path/to/www.example.com.cert
   SSLCertificateKeyFile /path/to/www.example.com.key

   SSLVerifyClient require
   SSLVerifyDepth 1
   SSLCACertificateFile /path/to/www.example.com.ca.crt
</VirtualHost>

Некоторые детали о вышеупомянутом

  • LoadModule...: загрузить соответствующий модуль Apache, содержа реализацию SSL
  • Послушайте 443: демон Apache послушает на стандартном порте HTTPS, 443
  • DocumentRoot: где файлы Вашего сайта находятся
  • ...: это - определение опций для каталога Вашего веб-сайта (существует намного больше, упомянутые здесь являются основным для предоставления доступа от любого IP в Интернете).
  • ServerName: служить только URL, содержащему это имя
  • SSLEngine на: активируйте опции SSL на этом веб-сайте.
  • SSLCertificateFile: соедините сертификат X.509 каналом о закрытом ключе, созданном для этого сервера.
  • SSLCertificateKeyFile: соедините каналом к закрытому ключу, созданному для этого сервера.
  • SSLVerifyClient требуют: осуществите сервер для просьбы клиента действительный сертификат
  • SSLVerifyDepth 1: должен быть непосредственно подписан CA, упомянул в следующей инструкции
  • SSLCACertificateFile: соедините сертификат X.509 каналом о CA, который подписывает сертификаты, используемые клиентами.

Сертификаты

Необходимо будет получить действительные сертификаты, один для сервера и многих другой для клиентов.

Для сервера
Инструмент OpenSSL установки, если еще не сделано: sudo apt-get install openssl.

С этим инструментом можно создать закрытый ключ сервера:

openssl genrsa -des3 -out server.pass.key 2048

Вышеупомянутая команда создает закрытый ключ с паролем. Чтобы быть загруженными автоматически Вашим сервером, необходимо удалить пароль:

openssl rsa -in server.pass.key -out server.key

У Вас есть теперь допустимый закрытый ключ сервера в файле, это - файл, на который указывают SSLCertificateKeyFile Директива Apache.

От этого закрытого ключа Вы создадите Сертификат запрос со знаком (CSR):

openssl req -nodes -new -key server.key -out server.csr

Вы собираетесь быть предложенными ввести ряд элементов (страна, организация...). Самым важным будет Общее название (CN), он должен соответствовать имени хоста Вашего веб-сервера, тот, используемый в URL. Таким образом в моем примере это - www.example.com.

Затем необходимо отправить этот файл CSR поставщику сертификата. Любой общедоступный CA хорош. После того, как они утвердят Ваш требуемый, они отправят Вам известный файл сертификата X.509 за Вашим сервером. На этот файл укажут SSLCertificateFile Директива Apache.

Для клиента
Необходимо будет предоставить действительный сертификат клиенту также.
На основе клиентского типа (Linux, Windows, MAC...) может отличаться процесс.

Иногда, для клиентских сертификатов, вся операция может быть сделана непосредственно от веб-браузера путем посещения страницы регистрации CA. Если сделано непосредственно от веб-браузера, чем Вы уверены, что сертификат автоматически регистрируется в сертификат DB веб-браузера.

Если сделано внешним средством (как openssl на Linux), необходимо будет импортировать закрытый ключ и файл сертификата в хранилище сертификатов веб-браузера.

8
ответ дан 1 December 2019 в 13:17

Другие вопросы по тегам:

Похожие вопросы: