给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问

给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问

    • 申请免费版个人SSL证书
      • 1. 腾讯云平台申请
      • 2. 阿里云平台申请
    • 上传下载的证书
    • 开始部署SSL证书
    • 配置http的URL重定向到https

现在,我们已经进入了网络时代,信息安全逐渐成为了我们的最大威胁,很多“普通网民”也渐渐地开始重视起来,之前的http协议虽然应用极广,但是它的安全缺陷却不小,尤其是其数据的明文传送和消息完整性检测的缺乏,在现在新兴的网络交易,网络支付领域,这两点是相当重要的。

如果你搭建了自己的网站,那么在你的网站上面部署SSL证书是必要的,是对自己网站的负责,也是对所有浏览者的负责。而部署方法也是非常简单的,SSL证书在像腾讯云、阿里云都有免费个人版的证书签发,在申请之后很短的时间内就可以下载部署了。这篇文章的目的主要是记录在Ubuntu系统下的Apache上面部署SSL证书,因为官方给出的部署方法是CentOS的,所以这里就不再赘述,CentOS系统的部署方法一般在证书签发页面有提供,有兴趣的同学可以前往查阅。

申请免费版个人SSL证书

1. 腾讯云平台申请

前往官网:https://console.cloud.tencent.com/ssl。
给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问_第1张图片一路无脑操作,填写完必要的信息后,提交申请,一般一到两天就会批下来,这个时候,就可以下载下来了。
给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问_第2张图片下载后是个zip文件,使用unar工具解压:unar yourdomain.zip,可以得到一个文件夹,包含了Apache、Nginx、Tomcat的证书,每个里面有三个,前缀分别为

1_root_bundle.crt

2_yourdomain.crt

3_yourdomain.key

2. 阿里云平台申请

访问官方网站:阿里云SSL。
给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问_第3张图片
给Ubuntu系统上的Apache配置SSL证书开启HTTPS访问_第4张图片和腾讯版一样,填写完必要的信息后,会在一到两天签发,签发后会在SSL证书控制台看到下载入口,点击下载,选择Apache版。解压下载后的zip文件,会得到三个文件,分别是:

number_yourdomain.key,

number_yourdomain_chain.crt,

number_yourdomain_public.crt

上传下载的证书

如果你没有设置密钥对登录方式:

scp -r 下载的证书路径 用户名@服务器公网地址:/home/xxx(要上传到的目的目录)

如果你设置了密钥对登录的方式:

scp -i 密钥私钥路径 -r 下载的证书路径 用户名@服务器公网地址:/home/xxx(要上传到的目的目录)

开始部署SSL证书

# 切换到Apache配置目录,最好是root用户,不然sudo麻烦死了
cd /etc/apache2
# 创建一个ssl文件夹
mkdir ssl
# 将刚刚上传到服务器的ssl证书zip文件移动或复制到ssl文件夹中
mv /home/xxx/yourdomain.zip /etc/apache2/ssl
# 安装openssl
apt-get install openssl
# 启动ssl模块
a2enmod ssl
# 查看ssl模块是否启动成功
ls /etc/apache2/sites-available
# 如果有default-ssl.conf这个文件则表明启动成功

# 修改ssl配置文件
vim /etc/apache2/sites-available/default-ssl.conf
#添加ServerName属性
<VirtualHost _default_:443>
                ServerAdmin webmaster@localhost
                ServerName yourdomain:443
                DocumentRoot /var/www/html
SSLCertificateFile /etc/apache2/ssl/www.YourDomainName_public.crt   
# 阿里云是将/etc/apache2/ssl/www.YourDomainName.com_public.crt替换为证书文件路径+证书文件名。
# 腾讯云是将/etc/apache2/ssl/www.YourDomainName.com_public.crt替换为证书文件路径+2_证书文件名,即2开头的那个证书
SSLCertificateKeyFile /etc/ssl/apache2/www.YourDomainName.com.key   
# 阿里云将/etc/apache2/ssl/www.YourDomainName.com.key替换为证书密钥文件路径+证书密钥文件名。
# 腾讯云是将/etc/apache2/ssl/www.YourDomainName.com.key替换为证书密钥文件路径+证书密钥文件名,即3_密钥文件名,即3开头的那个密钥
SSLCertificateChainFile /etc/apache2/ssl/www.YourDomainName.com_chain.crt  
# 阿里云是将/etc/apache2/ssl/www.YourDomainName.com_chain.crt替换为证书链文件路径+证书链文件名。
# 腾讯云是将/etc/apache2/ssl/www.YourDomainName.com_chain.crt替换为证书链文件路径+证书链文件名,即1_证书链文件名,即1开头的那个证书链文件。

# 建立一个软链接,将刚刚编辑的default_ssl.conf映射到apache2目录下的sites-enable目录
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
# 重新加载apache配置文件
/etc/init.d/apache2 force-reload
# 重启apache服务
/etc/init.d/apache2 restart

验证https部署结果,在浏览器输入https://www.yourdomain.com,如果成功访问,并且浏览器地址栏左侧有个小锁,则证明开启成功。

配置http的URL重定向到https

 加载apache的rewrite模块,并重启apache2服务器
a2enmod rewrite

# 修改配置文件/etc/apache2/apache2.conf如下(用于实现url重定向):
<Directory /var/www/>
        Options Indexes FollowSymLinks
        # AllowOverride None
        AllowOverride ALL
        Require all granted
</Directory>

# 在网站根目录下 /var/www 创建.htaccess文件
cd /var/www
touch .htaccess
# 编辑文件
vim ./.htaccess
# 写入以下信息
RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}

配置完成后,在浏览器地址栏直接输入www.xxx.com(你的域名)如果访问成功且地址栏的左侧有个小锁,则证明配置成功。

原文链接:https://www.aerlee.top/wordpress/?p=118

你可能感兴趣的:(Linux,https,SSL,apache,ubuntu)