ubuntu20.04 apache2 配置安装ssl证书

ubuntu20.04 apache2 配置安装ssl证书_第1张图片

自建服务器的SSL证书配置过程


1. 证书申请准备

*以上三个文件,根据自己网站域名重命名

将证书上传到你的服务器上,我是在/etc/ssl/目录下新建了一个文件夹。

2. 配置证书

首先,进入/etc/apache2/sites-available目录,如下:

ubuntu20.04 apache2 配置安装ssl证书_第2张图片

原先只有default-ssl.conf文件,“.old”结尾的文件用于备用原有配置文件。

做好备份后,我们需要设置一个软链接,把这个文件链接到sites-enabled这个文件夹中,可以使用绝对路径,也可以使用相对路径。我使用的是绝对路径,命令如下:

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf

然后去修改这个文件default-ssl.conf,因为已经做了软链接,所以这时候修改这两个文件夹下的default-ssl.conf都一样。

修改后内容如下:


    
        ServerAdmin [email protected]

        DocumentRoot /var/www/html

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

        SSLEngine on
        SSLCertificateFile      /etc/ssl/www.abc.com/www.abc.com.cer
        SSLCertificateKeyFile   /etc/ssl/www.abc.com/www.abc.com.key
        SSLCertificateChainFile /etc/ssl/www.abc.com/www.abc.com_ca.crt

        
                SSLOptions +StdEnvVars
        
        
                SSLOptions +StdEnvVars
        

    

重要的4个参数,作用如下:

1 SSLEngine on               ## 启用 SSL 功能
2 SSLCertificateFile            ## 证书文件
3 SSLCertificateKeyFile          ## 私钥文件
4 SSLCertificateChainFile         ## 证书链文件 CA文件

改好之后,保存;然后加载一下 Apache2 的 SSL 模块:

sudo a2enmod ssl           ## 加载模块
sudo systemctl restart apache2  ## 重启服务

此时在浏览器输入https://域名,应该已经可以直接通过 https 的方式来访问网站了。


但是如果不主动输入https://的话,直接输入域名,还是会直接跳转到 80 端口的普通的 http 方式访问,所以想要强制https访问,需要做如下设置。

3. 强制 https 访问

打开/etc/apache2/sites-available/000-default.conf文件,在VirtualHost标签内添加如下三行:

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

保存,再依次输入如下命令:

sudo a2enmod rewrite               ## 启动Apache2重定向
sudo systemctl restart apache2          ## 重启Apache2

至此大功告成。 刷新一下网页,输入域名,就会直接跳转HTTPS访问。


另外,SSL证书转IIS所需的pfx文件

openssl pkcs12 -export -out www.abc.com.pfx -inkey www.abc.com.key -in www.abc.com.cer

 

你可能感兴趣的:(Liunx,ssl,服务器,ubuntu)