本文概述
- 1.创建自签名SSL证书
- 2.创建主机的HTTP版本
- 3.创建HTTPS版本
在本文中, 我们将向你介绍如何在Ubuntu中使用自签名SSL证书轻松创建本地网站的安全版本。
1.创建自签名SSL证书你将需要一个证书来为你的域提供对HTTPS的支持。使用以下命令在apache安装目录中创建以下目录:
sudo mkdir /etc/apache2/ssl
然后, 使用以下命令在先前创建的目录中创建证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
这将开始提示你询问有关证书的信息, 你可以用真实或伪造的数据填充该证书, 因为它只能在本地环境中使用:
Country Name (2 letter code) [AU]:USState or Province Name (full name) [Some-State]: BlablaLocality Name (eg, city) []: BlablaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: BlablaOrganizational Unit Name (eg, section) []: Department of BlablaCommon Name (e.g. server FQDN or YOUR name) []: mycustomdomain.comEmail Address []: Blabla@Blabla.com
完成后, 你将拥有一个自签名证书, 该证书可用于为Apache中的域提供HTTPS支持。输出文件:
- /etc/apache2/ssl/apache.key
- /etc/apache2/ssl/apache.crt
2.创建主机的HTTP版本首先, 你需要具有VirtualHost的标准版本, 该标准版本在端口80(http:// mycustomdomain)中进行侦听。通常, 此虚拟主机的配置由你决定, 但是, 也需要考虑一些重要事项, 以使VirtualHost成为HTTPS版本。你将需要精确定义:
- 服务器名称
- 服务器别名
- 文档根
<
VirtualHost *:80>
ServerAdmin webmaster@mycustomdomain.com ServerName mycustomdomain ServerAlias www.mycustomdomain.com DocumentRoot /var/www/html/mycustomdomain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <
Directory /var/www/html/mycustomdomain>
Options Indexes FollowSymLinks MultiViewsAllowOverride AllOrder allow, denyallow from all <
/Directory>
<
/VirtualHost>
除非你已经拥有此虚拟主机, 否则需要使用以下命令启用它:
# Enable sitea2ensite mycustomdomain# Restart apachesystemctl restart apache2
这将允许你在浏览器中以HTTP版本浏览到mycustomdomain.com(假设你已经在/ etc / hosts中拥有主机的别名, 例如127.0.0.2 mycustomdomain.com)。
3.创建HTTPS版本现在, 基本上, 你需要做的是使用相同的属性创建同一虚拟主机的HTTPS版本, 但是我们将添加一些额外的设置来启用HTTPS支持:
SSLEngine onSSLCertificateFile /etc/apache2/ssl/apache.crtSSLCertificateKeyFile /etc/apache2/ssl/apache.key
重要的是要注意步骤2中提到的属性:
- 服务器名称
- 服务器别名
- 文档根
<
IfModule mod_ssl.c>
<
VirtualHost _default_:443>
ServerAdminwebmaster@mycustomdomain.comServerName mycustomdomain.comServerAlias www.mycustomdomain.comDocumentRoot /var/www/html/mycustomdomainErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined#SSL Engine Switch:#Enable/Disable SSL for this virtual host.#They should target the .key and .crt file created on the first step.SSLEngine onSSLCertificateFile /etc/apache2/ssl/apache.crtSSLCertificateKeyFile /etc/apache2/ssl/apache.key<
Directory /var/www/html/mycustomdomain>
Options Indexes FollowSymLinks MultiViewsAllowOverride AllOrder allow, denyallow from all<
/Directory>
<
/VirtualHost>
<
/IfModule>
【如何在Ubuntu 19.04开发服务器上的特定域上设置自签名SSL/TLS证书】然后, 启用此虚拟主机并重新启动apache:
# Enable sitea2ensite mycustomdomain_ssl# Enable SSL support in apachesudo a2enmod ssl# Restart apachesystemctl restart apache2
现在, 你应该能够使用安全协议https:// mycustomdomain访问你的域。
编码愉快!
推荐阅读
- 如何在Ubuntu 18.04中使用带Python的ssh-audit审核(检查漏洞)服务器上的SSH
- 如何解决ubuntu cli错误”exec”less”(在$ PATH中找不到可执行文件”)
- 如何解决Ubuntu 18.04 CLI错误(无法获取锁/var/lib/dpkg/lock-frontend-打开(11:资源暂时不可用))
- 如何在Ubuntu中以root身份运行Visual Studio Code(VSCode)
- 使用jarsigner签名APK时出错(无法签名jar无效条目压缩大小)
- 如何在Ubuntu 18.04中安装和设置自己的Vanilla Minecraft Server
- 如何使用Java以编程方式打开Android设置
- 如何修复SSH主机密钥验证失败,警告(Ubuntu 18.04中的远程主机标识已更改)
- Boostnote(适用于台式机和移动设备的开源笔记记录应用)