Ubuntu Debian 下Apache开启ssl

第一步-激活SSL模块

开启ssl模块

sudo a2enmod ssl

启用SSL后,您必须重新启动Web服务器以获得所识别的更改

sudo service apache2 restart

完成以上两个步骤,我们的Web服务器就能支持SSL

第二步-创建一个自签名的SSL证书

在apache配置目录下创建一个子目录用来保存ssl密钥文件

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

再来解释下几个参数的意思

  • openssl: 这是OpenSSL提供的基本命令行工具,用于创建和管理证书、密钥、签名请求等.

  • req: 表示证书输入请求.

  • -x509: 签发X.509格式证书命令

  • -nodes: 表示告诉openssl我们不需要用密码来保护密钥文件,如果没有此选项,会给apache启动带来不必要的麻烦,因为每次启动apache,都会让我们输入一次系统密码

  • -days 365: 表示有效天数,365

  • -newkey rsa:2048: 此选项将同时创建证书请求和一个新私钥。这是必要的,因为我们没有预先创建私钥。RSA:2048告诉OpenSSL生成一个2048位长的RSA密钥.

  • -keyout: 私有key的输出文件名

  • -out: 私有密钥的输出文件名.

当你按下enter键后,会出现几个问题让你输入,类似下文所示

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company
Organizational Unit Name (eg, section) []:Department of Kittens
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
Email Address []:your_email@domain.com

第三步 — 配置Apache SSL

现在我们有了证书和可用的密钥,我们可以配置Apache来在虚拟主机文件中使用这些文件。

在sites-available中有两个文件,一个是默认的80端口配置文件000-default.conf,一个是ssl端口配置文件default-ssl.conf,这里我们打开并编辑default-ssl.conf

sudo vim /etc/apache2/sites-available/default-ssl.conf

移除默认注释后的配置如下所示

ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLOptions +StdEnvVars
    SSLOptions +StdEnvVars

这看起来有点复杂,但幸运的是,我们不必担心这里的大多数选项。

我们需要添加 serveradmin,ServerName,serveralias,并指定apache ssl密钥文件来重写虚拟机主机配置文件

最后,它会看起来像这样。在红色的条目从原始文件的修改:

ServerAdmin webmaster@localhost

ServerName your_domain.com

ServerAlias www.your_domain.com

DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLCertificateFile      /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

SSLOptions +StdEnvVars
SSLOptions +StdEnvVars

编辑完成后保存退出

步骤四-激活SSL虚拟主机

既然我们已经配置了SSL的虚拟主机,所以我们需要启用它。

可以输入以下命令

sudo a2ensite default-ssl.conf

然后我们需要重启apache服务器来重新加载新的虚拟主机配置文件

sudo service apache2 restart

完成以上操作后,将会开启一个新的虚拟主机,并使用你自定义生成的密钥文件来加密

测试访问

https://server_domain_name_or_IP

ssl1.png

随后你会得到一个警告,您的浏览器无法验证服务器的身份,因为它没有被它信任的证书签名。

但是也在预料之中,这是因为我们有我们预期自签名证书。虽然我们的证书不会为我们的用户验证我们的服务器,因为它没有与可信证书颁发机构进行交互,但它仍然能够加密通信


上一篇: 前端利用 CGI(公共网关接口)调用系统命令(Ubuntu / Debian)

下一篇: Ubuntu/Debian下配置Shadowsocks访问外网

分享

版权属于:破冰者博客

文章链接:https://ice-breaker.cn/post/22

转载时必须以链接形式注明原始出处及本声明。

表情