Apache配置HTTPS协议搭载SSl配置全过程

1.安装必要的软件

从Apache官方(www.apache.org)下载必要的ApacheHttpServer安装包,可以直接官方提供的绑定openssl的apache.文件名是:httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi(我用的是Apache2.2.15for windows的版本,你可以点击此处下载最新的版本进行安装,最好选择含有openssl版本的哦)
否则单独安装windows下的openssl比较麻烦,要么找到一个第三方的编译结果,要么自己编译

< xmlnamespace prefix ="v" ns ="urn:schemas-microsoft-com:vml" />

安装完毕后检查检查在Apache安装路径的bin下是否有以下文件:

openssl.exe

ssleay32.dll

libeay32.dll

2.

生成服务器证书

安装好在bin目录下有一个openssl.exe文件,用来生成证书和密钥。 
1). 生成服务器用的私钥文件server.key

(注:在Windows操作系统环境下需先设置Openssl环境变量:在DOS命令下进入conf目录,执行命令行:set OPENSSL_CONF=..\conf\openssl.cnf;请在执行之前确保openssl.cnf存在,否则会出现:WARNING: can‘t open config file: /usr/local/ssl/openssl.cnf 信息提示。还有在windows系统下.cnf 默认会被当成快捷方式,看不到扩展名。)

在DOS命令下进入bin目录,执行命令行 
  命令:openssl genrsa 1024 > server.key
  说明:这是用128位rsa算法生成密钥,得到server.key文件 > 是输出文件的标识符

这种生成方法生成的是没有密钥的私钥文件,当然,Apache提供了加入密钥(Password)的命令,就是加入参数-des3,全部的命令为:

命令:openssl genrsa 1024 -des3 > server.key   使用 openssl genrsa -des3 > 1024 server.key生成私钥文件是需要输入密钥的,运行的时候会让你输入并确认你的密钥,但是在Windows环境下会导致以下错误:  错误:Apache启动失败,错误提示是:Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file .....)   原因是window下的apache不支持加密的私钥文件。可不使用des3加密。  注:生成的证书中RSA密钥对的默认长度是1024,取值是2的整数次方。建议使用4096以上。
图解:
1.切换到bin目录

 
    
    2.设置环境变量 
    3.生成server.key
 
    
      
    2). 生成未签署的server.csr    进入bin目录,执行命令行   命令:openssl req -new -key server.key > server.csr 说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步会有很多参数,需要一一输入  按提示输入一系列的参数, Country Name (2 letter code) [AU]:CN ISO国家代码(只支持两位字符)
State or Province Name (full name) [Some-State]:ZJ所在省份
Locality Name (eg, city) []:HZ所在城市
Organization Name (eg, company):SW_TECH公司名称
Organizational Unit Name (eg, section) []:SW_TECH组织名称
Common Name (eg, YOUR name) []:kedou.com申请证书的域名
Email Address []:[email protected] 管理员邮箱
 
Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []: 交换密钥
An optional company name []:  注:Common Name必须和httpd.conf中server name必须一致,否则apache不能启动 (启动apache时错误提示为:RSA server certificate CommonName (CN) `Kedou‘ does NOT match server name!? )  3). 签署服务器证书文件server.crt    进入bin目录,执行命令行 命令:openssl req -x509 -days 365 -key server.key -in server.csr > server.crt 说明:这是用步骤1,2的的密钥和证书请求生成证书server.crt,-days参数指明证书有效期,单位为天,x509表示生成的为X.509证书。     以上签署证书仅仅做测试用,真正运行的时候,应该将CSR发送到一个CA返回真正的用书.网上有些文档描述生成证书文件的过程比较繁琐,就是因为   他们自己建立了一个CA中心证书,然后再签署server.csr.   用openssl x509 -noout -text -in server.crt可以查看证书的内容。证书实际上包含了Public Key.

图解:

生成CSR

生成CRT

3. 配置httpd.conf.

在conf目录下的httpd_ssl.conf文件是关于ssl的配置,是httpd.conf的一部分,在httpd.conf中找到给文件的引用,移除对应的注释

找到一个443的虚拟主机配置项,如下: 
<VirtualHost _default_:443> 
   SSLEngine On 
   SSLCertificateFile ../bin/server.crt 
   SSLCertificateKeyFile ../bin/server.key 
   #SSLCertificateChainFile ../bin//ca.crt // 暂未启用 
   #...... 
   DocumentRoot "D:/programs/Apache2.2/htdocs" 
   ServerName www.kedou.com:443 
</VirtualHost>

移除注释行 
    LoadModule ssl_module modules/mod_ssl.so


这样所有的都可以通过HTTPS访问了,但是如果你想保留其他目录的访问仍然是http,那么你应该把 
     <VirtualHost _default_:443> 也改为 <VirtualHost www.kedou.com:443> 
     此时,即便ServerName是任意的,系统仍然正常运行,仅仅Apache log提示"does NOT match server name" 
注意到ssl.conf的配置都在标签<IfDefine SSL>中,所以为了使IfDefine 指令有效,运行apache 的时候要加上 -D SSL 参数。

apache -D SSL -k start

时间: 2024-10-27 11:59:49

Apache配置HTTPS协议搭载SSl配置全过程的相关文章

Apache 配置HTTPS协议搭载SSL配置

在设置Apache + SSL之前, 需要做: 安装Apache, 请参见: Windows环境下Apache的安装与虚拟目录的配置, 下载安装Apache时请下载带有ssl版本的Apache安装程序. 在进行下一步之前, 请确认Apache已经安装并可以正常工作. 并且ssl需要的文件在如下的位置: [Apache安装目录]/modules/ mod_ssl.so [Apache安装目录]/bin/ openssl.exe, libeay32.dll, ssleay32.dll [Apache

【转】Linux下nginx配置https协议访问的方法

一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/nginx -V 如下所示: configure arguments: --prefix=/usr/local/nginx --with-google_perftools_module --without-http_memcached_module --user=www --group=www --

tomcat配置https协议

tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗口,输入命令(keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\tomcat.keystore" ) 根据提示依次输入: 密钥库口令:123456(这个密码非常重要) 名字

Tomcat配置https协议访问

Tomcat9配置https协议访问: https://blog.csdn.net/weixin_42273374/article/details/81010203 配置Tomcat使用https协议: https://www.cnblogs.com/wanghaoyuhappy/p/5267702.html 原文地址:https://www.cnblogs.com/yanyunliu/p/10699418.html

Centos7下Apache详细安装配置及证书申请SSL配置介绍

首先说到Centos大家都已经非常熟悉了,所以我们也就不多介绍关于Centos具体发展了,我们首先知道在Centos7之前版本命令和ReadHat的命令完全一样的,可Centos从6.0版本升级到Centos7版本之后,命令及功能上有了很大的变化,最明显的差别就是从安装的操作界面及操作命令上已经有很大变化了,更不用说功能上的变化了,比如centos6.x版本的iptalbes到centos7的firewall的变化,当然,变化了很多,我也就不多说了,今天呢,主要给大家介绍一下再Centos7下A

nginx配置https访问安装ssl证书

开发小程序,接口需要换成https(lnmp环境.阿里云服务器) 证书在阿里云上免费购买下载的(解析到你要绑定的域名上) 修改nginx的配置nignx.conf 如下图配置(不做详细的讲解了,这块根据自己服务器不同的目录会有不同的配置) 重启nginx就可以了. 原文地址:https://www.cnblogs.com/blange/p/11497277.html

Nginx 配置HTTPS 与Node.js 配置HTTPS方法

前段时间公司网站要求加上HTTPS安全CA证书,公司服务器全是阿里云服务器,并且配有负载均衡,所以选择直接在阿里云购买CA证书,阿里云有一种证书可以免费试用一年,决定申请此证书,阿里云证书需要验证,阿里云有详细教程 配置之后发现所有在HTTPS访问的网站下的所有连接都需要是HTTPS访问,所以还是需要自己进行配置 配置方案记录一下,方便以后自己配置查找 环境 Centos6.8  Nginx  yum安装 首先要将下载的CA证书上传到服务器上面 , 然后打开/etc/nginx/conf.d/自

HTTPS协议,SSL协议及完整交互过程

文章转自 https://blog.csdn.net/dfsaggsd/article/details/50910999 SSL 1.        安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议. 2.    SSL协议的三个特性 ?  保密:在握手协议中定义了会话密钥后,所有的消息都被加密. ?  鉴别:可选的客户端认证,和强制的服务器端认证. ?  完整性:传送的消息包括消息完整性检查(使用MAC). 3.    SSL的

tomcat7 配置 https安全访问

在apache-tomcat-7.0.33-windows-x64.zip配置https,结果在配置SSL时遇到一些问题 1.用JDK自带的keytool来生成私有密钥和自签发的证书,如下: keytool -genkey -alias sdtx -keyalg RSA -keystore d:/keys/sdtx.keystore 2.启用Web服务器(Tomcat)的SSL,也就是HTTPS加密协议,准备好一个干净的tomcat,本教程使用的apache-tomcat-7.0.33-wind