Как насчет того, чтобы ваша локальная среда разработки была доступна через HTTPS без предупреждения SSL?
Как разработчику, вам, возможно, придется работать над несколькими проектами, клиентами и веб-приложениями.
Одной из предпосылок для разработки веб-приложений является локальное тестирование веб-сайтов в браузере на этапе разработки.
Очень высока вероятность того, что разрабатываемое вами приложение будет защищено сертификатом SSL / TLS в производственной среде.
Согласны?
Вы можете сказать ну есть же самоподписанный сертификат, и в этом нет ничего плохого.
- example.com
- *.example.com
- example.test
- localhost
- 127.0.0.1
- ::1
Вы можете реализовать mkcert в macOS, Windows, CentOS, Ubuntu и других ОС на основе UNIX.
Следующий пример показан на Ubuntu.
Прежде всего, давайте установим инструменты службы сетевой безопасности, которые включают certutil для управления базой данных сертификатов.
apt-get update
apt-get install libnss3-tools
apt-get install linuxbrew-wrapper
brew install mkcert
Примечание: для установки с помощью brew вы не должны быть пользователем root. и он устанавливается в /home/$USER/.linuxbrew/bin/mkcert
Где $USER – это имя пользователя, которое вы использовали для установки
Теперь пришло время установить локальный УЦ в хранилище доверенных сертификатов системы.
~/mkcert# /home/chandan/.linuxbrew/bin/mkcert -install
Using the local CA at "/root/.local/share/mkcert" ✨
The local CA is now installed in the system trust store! ⚡️
~/mkcert#
~/mkcert# /home/chandan/.linuxbrew/bin/mkcert example.com
Using the local CA at "/root/.local/share/mkcert" ✨
Created a new certificate valid for the following names 📜
- "example.com"
The certificate is at "./example.com.pem" and the key at "./example.com-key.pem" ✅
Супер! 🙂
Теперь у меня есть действующий сертификат и его файл ключа, готовый для использования на моем Nginx, Apache или других веб-серверах.
:/etc/apache2# 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
Как предложено системой, перезагрузите Apache.
На этом этапе, если вы запустите netstat, вы заметите, что Apache запущен с защищенным портом 443.
# netstat -anlp |grep 443
tcp6 0 0 :::443 :::* LISTEN 11616/apache2
Но мы еще не закончили.
Сертификат по умолчанию (dummy), и мы должны заменить его.
SSLCertificateFile /root/mkcert/example.com.pem
SSLCertificateKeyFile /root/mkcert/example.com-key.pem
Прежде чем перезапускать Apache, вам также необходимо манипулировать файлом hosts для example.com, чтобы хост разрешался на вашем локальном хосте, а не на интернет-хосте.
Когда вы закончите, перезапустите сервер Apache HTTP и зайдите на example.com – вы увидите, что обслуживаемый доверенный сертификат обслуживается.
Заключение
Это может быть удобно – иметь доверенный сертификат в локальной среде.
Выше приведен только пример example.com, но вы можете сделать это для localhost и других пользователей.