Apache配置HTTPS功能

apache配置https

一、yum 安装openssl和openssl-devel,httpd-devel
二、生成证书(也可以从公司的证书颁发机构获取):
#建立服务器密钥  openssl genrsa -des3 1024  > /usr/local/apache/conf/server.key   
# 从密钥中删除密码(以避免系统启动后被询问口令) openssl rsa -in /usr/local/apache/conf/server.key > /usr/local/apache/conf/server2.key
mv /usr/local/apache/conf/server2.key  /usr/local/apache/conf/server.key#建立服务器密钥请求文件openssl req -new -key /usr/local/apache/conf/server.key -out /usr/local/apache/conf/server.csr5>openssl x509 -in /usr/local/apache/conf/server.csr -out# 建立服务器证书  /usr/local/apache/conf/server.crt -req -signkey /usr/local/apache/conf/server.key -days 365
三、修改Apache的配置文件httpd.conf

打开ssl模块,没有这个模块就需要安装依赖包:mod_ssl,安装后就会在modules里面找到:

LoadModule ssl_module         modules/mod_ssl.so

引入ssl配置文件,增加支持ssl:

Include conf/extra/httpd-ssl.conf(去掉行首的注释)
  • 启动重定向(可选),使用用户HTTP访问自动重定向为HTTPS,直接在http.conf最后配置即可,在httpd.conf文件尾加入如下内容:

    RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [L,R]
四、修改加密文件ssl.conf,通过yum安装好的httpd,在conf.d目录下面有ssl.conf配置文件,我们需要在里面配置一个VirtualHost和配置证书和密钥:
LoadModule ssl_module modules/mod_ssl.so
Listen 443
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex defaultSSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:

<VirtualHost _default_:443>     # 必须有一个虚拟主机,这样才可以使用跳转功能和使用443端口访问
DocumentRoot "/home/store/webroot"Servername https://xxx.com/
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine onSSLCertificateFile /etc/httpd/conf/cert/xxx.com.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/xxx.com.key</VirtualHost>
五、重启Apache

service httpd restart

  1. 在浏览器输入https://域名 或者 域名:443,如果两个能正常访问,表示https已经配置成功。
  2. 在浏览器输入 域名,如果能够正常跳转到https连接上,那说明跳转功能正常。
  • 启动apache 碰到下面问题:

    Invalid command ‘SSLPassPhraseDialog‘, perhaps misspelled or defined by a module not included in the server configuration

    到apache的bin 目录下面执行 ./httpd -l 看看有没有mode_ssl.c,这个错误说明ssl模块安装没有成功。
    解决办法:

  • 1、重新编译apache,加上--enable-ssl --with-ssl参数
  • 2、把ssl模块加入到已经编译好的apache中
    首先,使用 whereis openssl 命令获取lib和include的路径
[[email protected] /usr/local/apache/modules]# whereis opensslopenssl: /usr/bin/openssl /usr/lib/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz

然后 在apache 源码的modules/ssl文件夹下,使用命令/usr/sbin/apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib/openssl/ -c *.c -lcrypto -lssl -ldl(apxs需要安装http-devel才有,虽然如此,我还是没有编译成功,于是就在其他已经编译了这个模块的机器上拷贝mod_ssl.so到apache模块目录/usr/local/apache/modules)

时间: 2024-10-12 21:00:44

Apache配置HTTPS功能的相关文章

mac中apache开启https功能,本地发布安装app

mac中apache开启https功能,本地发布安装app 最近app进入收尾阶段,发包比较频繁.很多手机都不在测试证书中,所以使用的是企业证书打包. 每次上传到外网服务器都很慢,需要15分钟左右.想想还是自己本地mac做个服务器下载比较快一点. 所以学了下apache开启https的内容,本文记录了自己的学习过程. 1-先制作自己的签名证书 在前面的apache相关中,已经在mac上开启了apache,为了后面手机安装证书方便,我是在 /Library/WebServer/Documents/

Apache 配置 https

## Apache 配置 https > Apache 版本: **2.4.10** Linux 版本 : **Debian** ### 安装Apache控制台命令:` sudo apt-get install apache2 `安装好了Apache2会自动启动,但是自动启动的不包含https仅仅是http **默认的配置路径** Apache配置文件路径: ` cd /etc/apache2/`Apache默认日志路径: `cd /var/log/apache2` ### 配置https###

Apache配置https

apache配置https一.yum 安装openssl和openssl-devel,httpd-devel 二.生成证书:openssl genrsa -des3 1024  > /usr/local/apache/conf/server.key建立服务器密钥  openssl rsa -in /usr/local/apache/conf/server.key > /usr/local/apache/conf/server2.key从密钥中删除密码(以避免系统启动后被询问口令) mv /us

OpenSSL配置Apache的https功能

https:会话建立过程1.客户端和服务器端先三次握手2.客户端发起请求,请求服务器端的443端口.3.双方协商建立ssl会话4.协商完成后,服务器发送自己的证书给客户端.5.客户端拿到证书后,查看证书是不是受信任证书颁发机构颁发的,和验证证书是不是完整的.6.客户端传递加密后的对称密码给服务器端.连接建立完成 CA给客户端颁发证书过程1.创建CA   自己生成一对密钥   生成自签名证书2.客户端    生成一对密钥    生成证书颁发请求,.csr    将请求发给CA3.CA端     签

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

在mac Apache配置https方式访问网站

引入httpd-ssl.conf文件 在相应的目录下找到httd-conf文件  一般都是在/etc/apache2/httpd.conf  下 取消掉Include /private/etc/apache2/extra/httpd-ssl.conf 前面的注释符号#  也就是引入httpd-ssl.conf文件 生成KEY和证书. 因为在 /private/etc/apache2/extra/httpd-ssl.conf 已经配置好KEY 和证书的名字所以下面的步骤中请不要修改生成的KEY文件

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比较麻烦,要么找到一个第三方的编译结果,要么自己

Apache配置https证书并跳转

对于网站实现https安全访问,需要做到以下几步:1.在域名解析商处申请ssl证书,该证书可以免费申请,申请下来后包括很多web配置的证书类型如下图:2.搭建web服务,我这里搭建的环境是LAMP环境.3.将ssl证书上传至对应的目录.4.配置ssl证书的认证访问.5.配置httpd的host访问.具体配置如下:域名的解析方式,在这里就不做赘述了.1. 关于lamp的环境搭建我这里使用的yum安装的环境,系统为centos6.9关于环境的搭建这里不进行介绍.LAMP环境安装完成后,确认是否有默认

Windows下Apache配置https

1.将mycert.crt 和mycert.key 文件复制到Apache 一级目录中 2.httpd.conf 开启相关的loadModule LoadModule ssl_module modules/mod_ssl.so 去掉前面#号 其他需要开启的 根据错误提示逐个开启 3.http-vhost.conf 加入配置 #原始配置 可以保留 listen 80 <VirtualHost *:80> DocumentRoot "D:/website/seo/public"