全部用startssl生成的证书,配置Apache使其支持SSL
Apache的编译安装见这篇:
http://www.cnblogs.com/yjken/p/3921840.html
网上查阅了一大批资料,得知自己生成的证书是会被浏览器提示“证书不安全”的,我也就没有去生成证书,而是直接去了startssl 申请了一个免费的证书,据说startssl也是全球唯一的一个可以申请免费ssl证书的地方,并且是被主流浏览器(firefox,chrome,IE,safari)认可的,所以,对于安全性要求不高的情景,免费的证书已经完全满足需求了,当然,如果你的安全性要求比较高,startssl也是有更高级的安全证书支持的,不过,这些更安全的证书可就是收费的了。
简单说下申请证书的步骤:
1. 去www.startssl.com注册一个帐号
2. 因为startssl不是那种常见的帐号密码登录的模式,而是不需要密码,甚至也不需要帐号,而是安装一个startssl的个人证书到你的浏览器上,下次进入这个网站,直接在弹出的证书上点确认就可以了,所以,第一次注册后,根据它的引导,会生成一张个人证书,安装至你的浏览器上,这个证书只是用来登录startssl网站用的,没有其它用处。
3. 验证邮箱,验证域名,startssl需要确认你确实是某域名的所有者,所以它会首先要求验证域名的所有权,验证步骤也很简单,假设你的域名是abc.com , 那么它会将验证字符串发送到诸如webmaster@abc.com这样的邮箱,你打开这个邮箱,把验证字符串拷贝并粘贴过去,就算成功了,很简单。
4. 生成证书,首先会生成一张顶级域证书,再生成一张二级域证书(整个步骤根据它的向导来,就可以了),期间有个密码,是必须要记住的,不然生成的证书,就会没法用了。
最终会得到下面几个文件:
ca.pem , ssl.crt , ssl.key , sub.class1.server.ca.pem
其实这张ssl.key是加密过的,直接配置到apache上也是可以的,只是这样很不方便,因为,每次启动apache都必须输入一遍密码,所以,你可以直接在线解密这个私钥的.
这样生成的私钥,配置到Apache上,就不需要启动Apaceh时输入密码短语了。
配置如下:
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile certificate/ssl.crt
SSLCertificateKeyFile certificate/ssl.key
SSLCertificateChainFile certificate/sub.class1.server.ca.pem
SSLCACertificateFile certificate/ca.pem ServerAdmin jken@abc.com
DocumentRoot "~/www/abc"
ServerName www.abc.com:443
ErrorLog "logs/error/abc_error_log"
CustomLog "logs/custom/abc_log" common
</VirtualHost>
主要是这几行:
SSLEngine On
SSLCertificateFile certificate/ssl.crt
SSLCertificateKeyFile certificate/ssl.key
SSLCertificateChainFile certificate/sub.class1.server.ca.pem
SSLCACertificateFile certificate/ca.pem
这个服务器名称需要增加443,端口号:
ServerName www.abc.com:443
这样,配置就完成了,不过,如果你这个时候重启Apache,你会发现用https访问不了网站,我当时配置的时候,就忽略了这一点,结果找了一大堆资料,还是不行,没办法,只好自己研究了,去服务器上,用netstat命令查看,发现,完全没有开启433监听端口,也就是说Apache的配置上还漏了一条,我在“Listen 80”下面,又加了一行“Listen 443”
Listen 80
Listen 443
这样,再重启Apache,使用https方式,打开网站,畅通无阻,问题解决。
对了,如果你的Apache不是我的安装方式,可能还会出问题,就是,你可能压根就没有安装ssl,我在安装Apache的时候,是有这条的:
with-ssl=/usr/include/openssl
这样,安装了ssl功能,如果不是编译成静态的,而是动态库的话,还得去掉下面这行的注释:
LoadModule ssl_module modules/mod_ssl.so
好了,这样,一般是不会有什么问题的了。
全部用startssl生成的证书,配置Apache使其支持SSL的更多相关文章
- 配置apache使之支持浏览器端的缓存
当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求. 一 ...
- Mac下配置Apache Httpd的Https/SSL
Mac下配置Apache Httpd的Https/SSL httpd版本: httpd-2.4.17 jdk版本: jdk1.8.0_65 参考来源: Mac下安装Apache Httpd Mac O ...
- Apache下开启SSI配置,使html支持include包含
有的时候,我们的页面有公共的导航栏navbar,公共的脚注footer,那么我们就想把这些公共部分独立成一个html文件,在要引用的地方像引用js,css一样,给包含进来. Apache下开启SSI配 ...
- linux ssl证书配置(apache)
1. 前提是 已通过第三方 申请到 .crt .key 和 .ca-bundle 文件 2. 将三个文件拷贝到linux服务器上 任意一个指定的目录 3. 找到要编辑的apache配置 Apache主 ...
- Windows下配置Apache服务器并支持php
php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...
- Tomcat的SSL证书配置以及Tomcat+Nginx实现SSL配置
把jks上传到java容器在的服务器上,路径只要不是webapps下就可以,然后到conf目录下server.xml里配置 <Connector port=" protocol=&qu ...
- 案例:配置apache和nginx的SSL加密传输协议
一.SSI解释 SSI是一种类似于ASP的基于服务器的网页制作技术.将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本.图形或应用程序信息包含到网页中.例如,可以使用 SSI 包含 ...
- wamp配置apache虚拟主机支持多域名访问localhost
1.背景: 在进行网站开发的时候,通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站.不过随着开发项目的增多,需要每次先访问localhost然后再选项目,显得 ...
- 使用CDN后如何配置Apache使其记录访客真实IP
今天想看看哪些地区的人访问过我的网站,于是打开Apache网站响应日志,把访客IP复制到百度,发现搜到的全部都是我是用的CDN的节点IP,真实的访客IP并没有被记录. 如图所示,上面的103.45.7 ...
随机推荐
- SSM框架原理,作用及使用方法
---恢复内容开始--- 尊重原创:http://m.blog.csdn.net/dennis_wu_/article/details/73437097 作用: SSM框架是spring MVC ,s ...
- Pycharm+django新建Python Web项目
这两天初学Python,首先是学习Python语法有PyCharm就可以运行Console程序了,因为是初学所以,尽量写的比较详细,包括参考的资料地址... 1.下载Python,并安装[本文版本 ...
- java中JFrame类中函数addWindowListener(new WindowAdapter)
转自:http://blog.csdn.net/datouniao1/article/details/46984987:侵删. 在java编写的过程中常常遇到样的一段代码: frame.addWind ...
- zzuli oj 1135 算菜价
题目: Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多少钱真是一笔糊涂帐.现在好了,作为好儿子(女儿)的你可以给她用程序算一下了,呵呵. Input 输入含 ...
- win处navicat直接导出的sql脚本导入Linux mysql报错问题
最近几天在把win上的项目的数据库转移到Ubuntu,于是第一件事就是从win处的navicat直接导出sql脚本,然后进入Ubuntu导入的时候会报错误,跳过错误继续执行导致数据库表的缺失. 跨平台 ...
- LAMP和LNMP,你更愿意选择谁,为什么?
https://www.zhihu.com/question/19697826 http://www.simongong.net lamp 的全称是linux + apache + mysql +ph ...
- MYSQL GROUP BY Optimization
GROUP BY Optimization 常规的匹配group by(分组)操作子句是扫整表并且创建包含连续的分组行的临时表, 利用临时表得到group数据,运用appregate function ...
- Java 获取年月日方法
package com.ob; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util ...
- canvas实现倒计时效果示例(vue组件内编写)
前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ...
- Linux - ubuntu 设置固定ip和设置dns
ubuntu 设置固定ip和设置dns 1.ifconfig 查看网卡名称 root@jiqing-virtual-machine:~# ifconfig ens32 Link encap:以太网 硬 ...