1. 获取SSL证书

根据自己的网站服务器来获取不同的ssl证书,我的服务器是ubuntu20.04。

证书如下:

00_***.key       ## 私钥文件
01_CERTIFICATE_***_***.crt    ## 证书文件
02_INTERMEDIATE_***.crt  证书链文件

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

2. 配置证书

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

原先只有000-default.conf和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都一样。

初始文件内容如下(去除注释):

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key <FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory> </VirtualHost>
</IfModule>

修改后内容如下(修改的内容后有注释):

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin ***@***.** ## 你的邮箱,不修改也可以 DocumentRoot /var/www/html/policy ## 你的应用目录 ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on      ## 下面三行配置证书文件
SSLCertificateFile /etc/ssl/***/01_CERTIFICATE_***_***.crt ## 证书文件,/etc/ssl/***是步骤1中的自定义文件夹
SSLCertificateKeyFile /etc/ssl/***/00_***.key ## 私钥文件
     SSLCertificateChainFile /etc/ssl/***/02_INTERMEDIATE_***.crt   ## 证书链文件, 该行在原始文件中是被注释的

<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory> </VirtualHost>
</IfModule>

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

SSLEngine on	## 启用 SSL 功能
SSLCertificateFile ## 证书文件
SSLCertificateKeyFile ## 私钥文件
SSLCertificateChainFile   ## 证书链文件

改好之后,Esc,:wq 保存。

然后加载一下 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]

然后保存,然后启动 Apache2 的重定向:

sudo a2enmod rewrite

然后再重启 Apache2,至此大功告成:

sudo systemctl restart apache2 

刷新一下网页,输入域名,就会直接跳转HTTPS访问。

ubuntu20.04 apache2 配置安装ssl证书的更多相关文章

  1. 转【翻译】怎样在Ubuntu 12.04上配置Apache SSL证书

    关于SSL证书 SSL证书是加密网站信息和创建一个更安全的连接的一种方式.另外,证书能够向网站訪问者展示VPS的身份信息. 证书颁发机构颁发SSL证书.用来验证server的具体信息,而一个自签名的证 ...

  2. oneinstack如何安装ssl证书和配置Let's Encrypt免费SSL证书教程汇总(转)

    OneinStack包含以下组合:lnmp(Linux + Nginx+ MySQL+ PHP) LNMP安装SSL安全证书 部署HTTPS:https://www.gworg.com/ssl/309 ...

  3. Tomcat从安装到配置Https SSL证书

    为什么要写本文? 今天一个群友在群里问怎么给Tomcat配置SSL,也就是HTTPS,他买的阿里云的服务器,自带公网ip,还找到了免费的SSL证书 既然@我了,我就帮忙搞一搞呗,我就要了一个带sudo ...

  4. phpStudy模式下安装ssl证书,详细版

    phpStudy模式下安装ssl证书,详细版 2017年12月16日 14:27:38 骑着蚂蚁追大象 阅读数:4232 标签: phpstudy安装ssl证书 更多 个人分类: php   版权声明 ...

  5. MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动

    MVC图片上传详解   MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...

  6. SSL安装方法一:在Windows Server 2008安装SSL证书(IIS 7.0)

    购买的是GlobalSign 公司的通配符域名型SSL 大致的意思就是“通配符公用名填写*.域名.com,这个下面的所有子域名是不受数量限制的,*可以换成任意字符” 1 生成数字证书签名请求文件(CS ...

  7. phpStudy环境安装SSL证书教程(apache)

    https://cloud.tencent.com/product/ssl 此链接是检测域名 证书的可以检测一下 下面是证书配置 小白呢亲测 作为PHP程序员,我们一定要学会使用phpStudy环境集 ...

  8. Linux+Apache下如何安装SSL证书

    最近很多站长在问linux系统平台下如何安装SSL证书?Linux+Apache下如何安装SSL证书?本文整理了关于Linux+Apache下如何安装SSL证书的相关教程供大家参考,更多SSL证书安装 ...

  9. nginx 安装 ssl 证书

    nginx 安装 ssl 证书 关键词: pem 转 crt , 证书续期, nginx 部署 ssl 证书, 解决 SSL23_GET_SERVER_HELLO 错误. 之前免费申请的 1年的证书过 ...

随机推荐

  1. mongodb在双活(主备)机房的部署方案和切换方案设计

    1. 概述 现在很多高可用系统为了应对极端情况,比如主机宕机.网络故障以及机房宕机等灾难的发生,通常会部署主备架构(双机房),或者双活架构(双机房),甚至多活架构(三个机房或者以上),mongodb天 ...

  2. C语言:统计字符个数及种类

    #include <stdio.h> int main(){ char c; //用户输入的字符 int shu=0;//字符总数 int letters=0, // 字母数目 space ...

  3. c语言:getch() getchar()

    1.getchar();从键盘读取一个字符并输出,该函数的返回值是输入第一个字符的ASCII码:若用户输入的是一连串字符,函数直到用户输入回车时结束,输入的字符连同回车一起存入键盘缓冲区.若程序中有后 ...

  4. python 爬取网络小说 清洗 并下载至txt文件

    什么是爬虫 网络爬虫,也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人.其目的一般为编纂网络索引. 网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引.网络爬虫可以 ...

  5. 微信小程序云开发-云存储-下载并打开文件文件(word/excel/ppt/pdf)

    一.wxml文件 1.写文本框,用来获取文件链接. 2.按钮,点击下载文件 <!-- 下载文件(word/excel/ppt/pdf等) --> <view class=" ...

  6. 智能停车场车牌识别系统【python】

    百度AI:https://ai.baidu.com  申请App_id 代码重点:pip install  baidu_api from aip import AipOcr import os # 百 ...

  7. python3中文件/IO编程

    python3的文件操作可谓是我见过所有语言中最舒服的,那我们来一起看一下py3中的文件操作. 1:文件的打开方式有以下几种: 注:以上图表参考菜鸟教程 2:定位读写文件  f = open(&quo ...

  8. xmind2020 zen 10.3.1安装破解教程

    hi大家好,xmind zen 2020 10.3.1是一款优秀的思维导图工具,我和我爸爸都在用,功能包括去掉xmind zen水印.上传图片等功能,支持windows操作系统! 文章教大家安装并解锁 ...

  9. ecshop 连接sae数据库的配置

    // database host$db_host   = "w.rdc.sae.sina.com.cn:3307";// database name$db_name   = &qu ...

  10. HttpRunner3源码阅读: 1. 目录结构分析

    初衷 身处软件测试行业的各位应该都有耳闻HttpRunner 开源测试工具/框架(接口测试),作者博客 为什么出这系列? 不少测试同行都建议阅读HttpRunner,源码学习其设计思想. 社区当下Py ...