阿里云HTTPS网站配置和apache的主httpd.conf文件详解

配置HTTPS

一、SSL证书申请:

如果是阿里云可以申请免费证书:
如果不是阿里云:

二、开通证书:购买位置:打开阿里云找到“产品”-“安全”-“CA证书服务”-点击“立即购买”;

选择方法:证书类型选择”专业版OV SSL”->”1个域名”->”Symantec”(这里选择完成后上面证书类型出现了“免费型DV SSL”)->证书类型选择”免费型DV SSL”->然后继续购买就可以了;
此处注意不要填xxx.xxx的形式, 因为这种证书只能绑定一个域名

域名验证类型:一路点击后来到后台中的CA证书服务(也可以自己从阿里后台找),在”进度”栏目中有”补全”,点击”补全”,一直输入一直往下点击,直到有个”域名验证类型”,这里选择DNS。

全部填写完成后等待一会就开通了。

DNS解析配置:紧接上步,开通成功会有要求添加txt的解析记录,解析记录的值也会给你,然后去添加

三、部署服务器:

由于我的环境是apache, 这里主要是有关apche的配置项nignx的参考

第一 、php开启php-openssl拓展

如果没开启的话, 如果是yum方式安装的apache, 则运行yum install mod_ssl

第二、

一、进入到apache目录下在conf 文件夹下 httpd.conf中找到
LoadModule ssl_module modules/mod_ssl.so
去掉前面的注释符,使得ssl模块生效(如果该模块已去掉注释,请不用操作)。

如果重启用status查看得知mod_ssl.so无法加载, 并且是通过安装包方式安装的apache需要t通过以下方法加入该模块:
如果是通过yum方式安装的httpd, 则只需要执行 yum install mod_ssl

1、根据服务器apache版本下载对应版本:apache历史版本下下载
2、解压下载的版本文件 将modules下的loggers,ssl两个文件【一定是两个文件否则出错】放到服务器端apache的modules下
3、执行 /usr/bin/apxs -a -i -c mod_ssl.c (/usr/bin/apxs为find出来的apxs路径)
apxs是一个apache模块安装工具
4、如果出现错误:
In file included from mod_ssl.c:27:0:
ssl_private.h:85:30: fatal error: openssl/opensslv.h: No such file or directory

5、则要先sudo yum install openssl-devel

6、再次执行/usr/bin/apxs -a -i -c mod_ssl.c 发现已经生成mod_ssl.so文件

如果到第6步, so文件生成了但是还是无法加载, 则执行yum install mod_ssl

二、在加载虚拟域名的配置文件下增加加载hosts_ssl.conf的配置文件,如果已有则去掉注销#
<IfModule ssl_module>
Include conf/http_ssl.conf
</IfModule>
(也有版本是在文件ssl.load文件中对模块进行管理)

第三,在apche安装目录新增cert文件夹放入在阿里云申请成功并下载下来的证书文件。
第四、配置http_ssl.conf文件

阿里云推荐配置:

 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/public.pem
# 证书私钥配置
SSLCertificateKeyFile cert/215016420810269.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/chain.pem

自己的VirtualHost 节点需要额外实现:

<VirtualHost [服务器ip]:443>
    ServerAdmin your.com      
    ServerName your.com                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on
    # 添加 SSL 协议支持协议,去掉不安全的协议
    SSLProtocol all -SSLv2 -SSLv3
    # 修改加密套件如下
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    # 证书公钥配置
    SSLCertificateFile cert/public.pem
    # 证书私钥配置
    SSLCertificateKeyFile cert/215013163210269.key(拿到的key)
    # 证书链配置,如果该属性开头有 '#'字符,请删除掉
    SSLCertificateChainFile cert/chain.pem
</VirtualHost>
第五、重要!!!!!配置httpd-vhosts.conf文件

除了在http_ssl.conf中增加域名节点外,原有虚拟域名配置文件httpd-vhosts.conf也要增加结点否则httpds不会生效,我看大部分参考资料都没有这一步,可能环境不同吧, 我这里是LAMP且yum源安装。

<VirtualHost *:443>
    ServerAdmin your.com      
    ServerName your.com                    
    DocumentRoot  /data/www/hbappserver/public          
    SSLEngine on
    # 添加 SSL 协议支持协议,去掉不安全的协议
    SSLProtocol all -SSLv2 -SSLv3
    # 修改加密套件如下
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
    SSLHonorCipherOrder on
    # 证书公钥配置
    SSLCertificateFile cert/public.pem
    # 证书私钥配置
    SSLCertificateKeyFile cert/215013163210269.key(拿到的key)
    # 证书链配置,如果该属性开头有 '#'字符,请删除掉
    SSLCertificateChainFile cert/chain.pem
</VirtualHost>
第六:在阿里云服务器中安全组设置中开放服务器的443端口,选择开放类型为https
第七:重启apache

注意事项:

1、阿里云申请域名是,是填一个顶级域名和子域名, 填xxx.xxx.xxx的格式(只能保护一个域名)
2、apche的httpd.conf文件中如果没有mod_ssl模块, 要额外运行yum安装mod_ssl模块,
这样它就会生成mod_ssl.so和httpd-ssl.conf文件了
3、同理如果第二步找不httpd-ssl.conf,在运行完安装mod_ssl后直接把Include conf/hosts_ssl.conf加最后一行
4、阿里云建议的apache设置并不对
记得在hosts_ssl.conf文件中设置本服务ip和ServerName设置域名(与申请ssl时所填一致)。
并且除了在VirtualHost外的设置项
SSLProtocol SSLCipherSuite SSLHonorCipherOrder 这几项也在VirtualHost 中需要加入。
5、配置http.conf文件时,需要清除它的加载原理,参考如下


Apache主配置文件httpd.conf 详解:

Apache服务器的配置信息全部存储在主配置文件/etc/httpd/conf/httpd.conf中,这个文件中的内容非常多,用wc命令统计一共有1009行,其中大部分是以#开头的注释行。
一般, 如果你centos通过yum源安装一般是在 /etc/httpd/conf/httpd.conf 目录下,,有些系统的镜像也安装在apache目录下 ,具体可以通过find / -name命令查找。

配置文件包括三部分:

Section 1: Global Environment 服务器参数和加载模块设置

Listen 80 端口 如有多块网卡,默认监听所有网卡

StartServers 8 开始服务时启动8个进程

MinSpareServers 5 限制同一时刻客户端的最大连接请求数量超过的要进入等候队列

MaxSpareServers 20 每个进程生存期内允许服务的最大请求数量,0表示永不结束

ServerLimit 256 服务器允许配置进程数的上限。

MaxClients 256 同时最多能发起250个访问,
User apache
Group apache

启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全

DocumentRoot

网站文件根目录和对根目录的一个权限的设置

DocumentRoot "/var/www/html"
 317 <Directory "/var/www/html"> 
 331    Options Indexes FollowSymLinks   当网页不存在的时候允许索引显示目录中的文件,
 338    AllowOverride None 是否允许访问符号链接文件。
 343    Order allow,deny  表示不允许这个目录下的访问控制文件来改变这里的配置
 344    Allow from all 对页面的访问控制顺序
 346 </Directory>
网页支持:
AddType application/x-tar .tgz 支持的应用如果想支持对`php`的解析添加这样一行

AddType text/html .shtml 

AddOutputFilter INCLUDES .shtml
添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记改为正确的HTML标识

添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记改为正确的HTML标识

ServerName

默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定IP地址,当这项不正确的时候服务器不能正常启动。前面启动Apache时候提示正在启动 httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1forServerName,解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost

服务器模块加载

注意以下几个模块,涉及到httpd服务器能否正确跑起来
LoadModule dir_module modules/mod_dir.so
LoadModule systemd_module modules/mod_systemd.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so


Section 2: 'Main' server configuration

-主服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有一个站点,那么就只需在这里配置就可以了。
一般服务器这部分的配置可以省略


Section 3: Virtual Hosts []

虚拟主机不能与Main Server主服务器共存,当启用了虚拟主机之后,Main Server就不能使用了。

Virtual Hosts文件加载:

vhost_alias_module(引入mod_vhost_alias.so)模块加载时允许配置一个http的虚拟主机文件(httpd-vhost.conf),
ssl_module(引入mod_ssl.so)模块加载时允许配置一个https的虚拟主机文件包括http域名的虚拟主机httpd-sll.conf
在以上两个文件,都通过添加类似:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias example.com
    DocumentRoot /data/www/Shop
</VirtualHost>

<VirtualHost *:443>
#   https需要额外配置证书信息
DocumentRoot "/data/www/public"
ServerName example.com
ErrorLog "/usr/local/apache/logs/error_log"
TransferLog "/usr/local/apache/logs/access_log"
#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on 
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLCertificateFile cert/public.pem

SSLCertificateKeyFile cert/215016596360269.key

SSLCertificateChainFile cert/chain.pem

的结点来配置虚拟域名,重启生效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容