2. 配置证书

在这里,我假设你已经会配置基本的/etc/apache2/sites-available/000-default.conf这个文件来达到已经可以通过 http 的方式来访问你的站点。

在/etc/apache2这个目录下,有两个有关的目录sites-available和sites-enabled,我们进入sites-enabled目录下可以发现,里面有一个文件000-default.conf

$ ll
lrwxrwxrwx 1 root root 35 Dec 28 15:24 000-default.conf -> ../sites-available/000-default.conf

实质上这个文件是/etc/apache2/sites-available/000-default.conf这个文件的软链接。

我们要配置另 ssl 证书,要依靠另一个文件,也就是default-ssl.conf,首先我们需要设置一个软链接,把这个文件链接到sites-enabled这个文件夹中:

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

然后去修改这个文件000-default-ssl.conf,因为已经做了软链接,其实这时候修改000-default-ssl.conf或default-ssl.conf都一样。

这个文件没有做任何修改前长这样子(去除自带的注释之后):

<IfModule mod_ssl.c><VirtualHost _default_:443>ServerAdmin webmaster@localhostDocumentRoot /var/www/htmlErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine onSSLCertificateFile  /etc/ssl/certs/ssl-cert-snakeoil.pemSSLCertificateKeyFile /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>

然后把从阿里云上面下载好的证书(3个文件)传到你自定义的目录中

然后我们需要修改一下,修改成这样:

<IfModule mod_ssl.c><VirtualHost _default_:443>ServerAdmin 你的邮箱DocumentRoot /var/www/你的目录ServerName 你的域名ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combinedSSLEngine on# 注意,需要添加这三行SSLCertificateFile 你自定义的路径/2_xxx.xxx.xxx.crtSSLCertificateKeyFile 你自定义的路径/3_xxx.xxx.xxx.keySSLCertificateChainFile 你自定义的路径/1_root_bundle.crt<FilesMatch "\.(cgi|shtml|phtml|php)$">SSLOptions +StdEnvVars</FilesMatch><Directory /usr/lib/cgi-bin>SSLOptions +StdEnvVars</Directory></VirtualHost>
</IfModule>

重要的三个参数的作用如下表:

配置文件参数 说明
SSLEngine on 启用 SSL 功能
SSLCertificateFile 证书文件
SSLCertificateKeyFile 私钥文件
SSLCertificateChainFile 证书链文件

改好之后保存。

然后这时,我们加载一下 Apache2 的 SSL 模块:

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

这时,在浏览器输入https://你的域名应该已经可以通过 https 的方式来访问网站了,这时浏览器那里应该也已经有了一个绿色的小锁。

但是,但是…这还不够,因为我们如果不主动输入https://的话,直接输入域名,还是会直接跳转到 80 端口的普通的 http 方式访问,所以我们需要强制使用 https 来访问

强制使用https

我们只需要打开/etc/apache2/sites-available/000-default.conf这个文件,在你的<VirtualHost*:80></VirtualHost>这个标签内随便一个地方加上三行:

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

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

 sudo a2enmod rewrite

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

sudo service apache2 restart

作者:hiekay
链接:https://www.jianshu.com/p/8df8e92ace30
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

乌班图配置 https ssl证书相关推荐

  1. Nginx配置https(ssl证书)并反向代理Springboot Jar项目

    下载安装NGINX # 下载NGINX: yum install nginx # 启动nginx: systemctl start nginx # 加入开机启动: systemctl enable n ...

  2. 如何配置https安全证书,ssl证书如何配置

    伴随着时期的发展趋势,计算机网变成人们日常生活必不可少的物品,只是计算机安全也变成了人们所忧虑的物品,那麼人们究竟该如何确保自身的计算机安全呢?有许多人挑选了配置HTTP安全证书,只是人们要是如何配置 ...

  3. python sanic 设置ssl证书_配置自签https ssl证书

    由于人们越来越重视网络安全,所以很多平台及系统都要求使用https方式接入.而且一些开源服务框架在调用时也只接受https请求,这将导致平时开发/测试时需要用到ssl证书的地方越来越多. 在2016年 ...

  4. https ssl证书的工作原理及使用相关知识收集

    https ssl证书的工作原理及使用相关知识收集 SSL 与 数字证书 的基本概念和工作原理 前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片.对于数字证书也 ...

  5. Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt-get install build-e ...

  6. Tomcat8.0系列配置GlobalSign SSL证书

    Tomcat8.0系列配置GlobalSign SSL证书 生成证书请求文件 第二步,提交CSR,申请证书 第三步,获取并安装服务器证书 第三步,配置tomcat 本文详细介绍了Tomcat8.0系统 ...

  7. 【七牛云配置免费SSL证书 记录】

    七牛云配置免费SSL证书 记录 第一步 七牛云SSL证书 购买证书 第二步 补全信息 第三步 DNS配置 第四步 配置成功后 部署 启动即可 第一步 七牛云SSL证书 购买证书 点击购买即可 第二步 ...

  8. 第52章 HTTPS SSL证书与Data Protection(数据安全)

    HTTPS SSL证书 在使用Visual Studio .Net(Core)进行Web开发时,当前第一调试Web程序时会为Visual Studio中的Web项调试所使用的IIS Express提供 ...

  9. WebService系列之Axis Https(SSL)证书校验错误处理方法

    WebService系列之Axis Https(SSL)证书校验错误处理方法 最近在用Axis调用https的接口,抛出异常: javax.net.ssl.SSLHandshakeException: ...

最新文章

  1. 行业洞见 | 一文了解自动驾驶汽车
  2. [转] 前端实现文件的断点续传
  3. (转)利用快速开发框架,快速搭建微信浏览博客园首页文章
  4. UVA-10054 The Necklace (欧拉回路)
  5. JavaBeans四个作用域 范围
  6. react-router 按需加载
  7. C# -WinForm 中英文实现, 国际化实现的简单方法
  8. 带给你灵感的3D街画艺术设计
  9. JSON.parse()、eval()、JSON.stringify()、jQuery.parseJSON()的用法
  10. php计算时间差js,js 求时间差怎么求实例代码
  11. excel两列数据对比找不同_Excel | 如何核对两列/行数据,找不同?
  12. 企业微信--扫一扫功能(隐形坑)
  13. Android自定义View_绘制菱形图片
  14. Kruskal(克鲁斯卡尔)
  15. 关于nomogram核心函数的time.inc函数的设定
  16. 计算机重新装xp系统软件,关于安装软件重启XP电脑后软件不见的处理方法
  17. Cesium实现卫星在轨绕行
  18. 计算机网络集成的必要性是,网络管理重要性之谈
  19. JAVA毕业设计Web端校园报修系统计算机源码+lw文档+系统+调试部署+数据库
  20. {转}tbl语言简介

热门文章

  1. Nordic芯片怎样烧录UICR
  2. Docker(五)进阶:Docker卷(volumes)
  3. Salesforce系列(六):Salesforce Apex基础SOQL查询和数据添加!
  4. html文件右键没有打开方式,Win7右键菜单中的”打开方式“不见了的解决方法
  5. 计算机动漫与游戏制作报告,计算机动漫与游戏制作专业课程体系建设总结报告.PDF...
  6. Jenkins ——The server rejected the connection
  7. 编译原理:语法树,短语,直接短语,句柄
  8. android音频编辑之音频裁剪
  9. iOS 15 新功能:即使手机关闭,也能找到丢失的iPhone
  10. java8精简的jre,精简版jre,只有9M多哦!