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 ...
随机推荐
-
Lesson 21 Mad or not?
Text Aeroplanes are slowly driving me mad. I live near an airport and passing planes can be heard ni ...
-
callback转Promise
环境: nodejs - v6.2.0 const fs = require('fs'); let Promise = require('bluebird'); let readSync = fun ...
-
十一、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
-
C#程序中:如何向xml文件中写入数据和读取数据
xml文件作为外部信息存储文件使用简单,方便,其结构和表格略有相似,下面简单的说一下xml文件内容的读取 …… using System.Xml;using System.IO;namespace W ...
-
热门usb无线网卡
拓实 N910 N95 N82 N81 N89 都是3070的 拓实 N87 G618 是8187的硬功夫 216 310 217 218 300 315 335 350 370 380 510 53 ...
-
Linux用户与用户组,UID及GID
以下列出文章: Linux系统下如果查看用户的UID和GID:http://blog.csdn.net/ahangliu/article/details/7567444 Linux的用户和用户组管理: ...
-
BEX5下新建任务到待办任务
List<OrgUnit> list = new ArrayList<OrgUnit>(); // 1.查询出执行者 String sql = "select t.f ...
-
cf Round#273 Div.2
题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...
-
Maven 安装和配置
一.Maven 简介 Maven 是一个强大的Java项目构建工具,类似.NET中的NuGet ,Node.js的NPM. 正如nuget.org ,Maven有一个*仓库 maven.org,可以 ...
-
[algorithm] Dijkstra双栈算法表达式求值算法
一.原理 Dijkstra所做的一个算法,双栈求值,用两个栈(一个保存运算符,一个用于保存操作数), 表达式由括号,运算符和操作数组成. (1).将操作数压入操作数栈 (2).将运算符压入运算符栈: ...