一、在服务器上部署 httpd 服务(Ubuntu 为例)

  1. 部署 httpd 服务。

    sudo apt install apache2 -y
  2. 启动 apache2 服务并设置为开机自启。

    systemctl enable apache2
    systemctl start  apache2
  3. 检查服务器 80 端口是否监听。

    ss -nutlp | grep 80

二、配置安装并启用 httpd 所需的 SSL 相关组件

  1. 安装 httpd 相关 SSL 组件,并启用相关模块。

    # ubuntu apt 安装会自动安装所需组件,centos 还需运行如下命令安装组件:yum install mod_ssl openssl
    # 启用 ssl 模块
    root@web:/etc/apache2/sites-available# sudo 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:
    Module socache_shmcb already enabled
    Module ssl already enabled                   # 这一行表示 ssl 模块已启用
  2. 配置 httpd 的 SSL。

    1. 创建目录/etc/apache2/ssl,并将申请到的域名证书复制进来。

      root@web:/etc/apache2/ssl# mkdir /etc/apache2/ssl
      root@web:/etc/apache2/ssl# ls
      www.test.com.crt  www.test.com.key
    2. 编辑默认的 https 配置文件。

      root@web:/etc/apache2/sites-available# cp default-ssl.conf default-ssl.conf.bak
      root@web:/etc/apache2/sites-available# grep -Ev "^*#|^$" default-ssl.conf.bak >default-ssl.conf
      root@web:/etc/apache2/sites-available# cat default-ssl.conf
      <IfModule mod_ssl.c>
      	<VirtualHost *:443>
              ServerName www.test.com        # 填写你所申请的证书的域名
      		ServerAdmin webmaster@localhost
      		DocumentRoot /var/www/html
      		ErrorLog ${APACHE_LOG_DIR}/error.log
      		CustomLog ${APACHE_LOG_DIR}/access.log combined
      		SSLEngine on
      		SSLCertificateFile	/etc/apache2/ssl/www.test.com.crt  # 填写你证书的位置
      		SSLCertificateKeyFile /etc/apache2/ssl/www.test.com.key # 填写你证书的位置
      	</VirtualHost>
      </IfModule>
    3. 重启 apache2 服务,并查看 443 端口是否存活。

      root@web:/etc/apache2/sites-available# systemctl restart apache2
      root@web:/etc/apache2/sites-available# ss -nutlp | grep 443
      tcp    LISTEN   0        128         *:443     *:*      users:(("apache2",pid=20985,fd=6),("apache2",pid=20984,fd=6),("apache2",pid=20981,fd=6))

三、验证

在浏览器中访问证书中的域名。

bestp linux confighttpdssi 1
注意

这里由于是自签证书,所浏览器认为是不安全的。正式使用的时候需要到相关机构签发 SSL 证书。