Apache配置https

之前一直用的是Tomcat,今天突然接到任务要给Apache配置https证书,因为小程序要用。下面把过程列出来以备后续查看。

1.首先你得有ssl证书,没有的可以去购买,买完之后下载证书,建议选择适配Apache的文件下载。我的下载下来的文件是一个压缩文件,解压后截图如下:

这三个文件分别是:

  一个以.key结尾的文件(秘钥文件)

  两个以.crt结尾的文件(xxxxx_chain.crt是证书链文件,xxxxx_public.crt是证书文件)

2.在Apache的目录下新建一个文件夹,名称随意。然后将这三个文件放到这个文件夹里面。我这边的文件夹名字是cert。

3.在Apache安装目录下,打开Apache/conf/httpd.conf,在httpd.conf文件中找到以下参数并进行配置。

#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。
#Include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。

如果找不到上面的参数请在文章后面看解决办法。

4.保存httpd.conf文件并退出。

5.打开Apache/conf/extra/httpd-ssl.conf,在httpd-ssl.conf文件中找到以下参数并进行配置。 证书路径建议使用绝对路径。

SSLProtocol all -SSLv2 -SSLv3  # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 使用此加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name_public.crt # 将domain name_public.crt替换成您证书文件名。
SSLCertificateKeyFile cert/domain name.key # 将domain name.key替换成您证书的秘钥文件名。
SSLCertificateChainFile cert/domain name_chain.crt # 将domain name_chain.crt替换成您证书的秘钥文件名;证书链开头如果有#字符,请删除。

6.保存 httpd-ssl.conf 文件配置并退出。

7.重启Apache服务器使SSL配置生效。

------------------------------------------------------

这里说一下上面第3步找不到那些参数的解决办法:

1.找不到那些参数,可能是Apache没有安装mod_ssl.so模块,我这里用yum方式安装。在任意路径下执行下面的命令:

yum -y install mod_ssl

2.命令执行结束安装完成后 /etc/httpd/conf.d 目录下会出现一个ssl.conf文件

3.在这个文件里面找到如下内容进行更改

SSLCertificateFile xxx_public.crt

SSLCertificateKeyFile xxx.key

SSLCertificateChainFile xxx_chain.crt

4.找到上面的三个内容并将后面的文件路径替换为你自己的文件路径,(这些文件就是你之前放在Apache/cert路径下的三个证书文件且路径是绝对路径)

5.然后继续在此文件中配置找到以下内容配置443站点信息(这里只说明内容,按照内容直接改就可以)

DocumentRoot "/home/test/file/" #(引号里面是你的项目的路径)
ServerName xxxxx (这里的xxxxx是你的域名) <Directory "/home/test/file/"> #(引号里面是你的项目的路径,其他的直接复制过去即可)
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

6.然后这个文件就编辑完了。

7.在找到Apache/conf/httpd.conf文件并打开。

8.找到#LoadModule ssl_module modules/mod_ssl.so 并将前面的#号去掉。

9.在此文件的最后引入之前配置好的文件。例如:

#引入外部的ssl配置文件
Include /etc/httpd/conf.d/ssl.conf

10.至此,配置完成,重启Apache然后访问你的域名就好了。如果有不合适的地方还请各位大佬说出来。

----------------------------- end -----------------------------

最新文章

  1. jqueryAjax在客户端发送请求的方式
  2. [转]IE8兼容Object.keys
  3. C语言实现四则运算
  4. 模仿console自写函数打印js的对象
  5. june 14
  6. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
  7. 理解AngularJS生命周期:利用ng-repeat动态解析自定义directive
  8. redis的数据类型
  9. js获得鼠标的位置
  10. POJ3258River Hopscotch(二分)
  11. bzoj1046
  12. SQL 2008存储图片和读取图片
  13. HDU OJ 5326 Work( 2015多校联合训练第3场) 并查集
  14. dubbo-zookeeper(续)
  15. webstorm 2019.1 注册教程
  16. 字符串----hiho字符串(尺取法)
  17. oracle解决导入高版本dmp报错问题:IMP-00058: ORACLE error 12547 encountered
  18. Django 2.0 学习
  19. postgresql逻辑结构--触发器(三)
  20. (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)

热门文章

  1. url编码本质
  2. 由浅入深了解RabbitMQ
  3. 【C#】学习笔记 abstract、virtual、interface使用的一些栗子
  4. AFNetworking上传一张或多张图片,并压缩图片节约占用内存
  5. U盘的几种分类及格式
  6. 服务器安装neo4j
  7. [Linux] 获取出日志中的邮箱shell
  8. [Go] Golang中的面向对象
  9. Python爬虫(学习准备)
  10. a迭代中的燃尽图统计