• 1241阅读
  • 1回复

apache 配置安装ssl证书实现https安全访问全过程

楼层直达
apache 配置安装ssl证书实现https安全访问全过程 WM,i:P)b  
z^W$%G  
安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。 ?znSx}t  
1.#修改httpd.conf文件 ^0tw%6:  
LoadModule ssl_module modules/mod_ssl.so dDtFx2(R  
.Q>!B?)  
Include conf/extra/httpd-ssl.conf xx8U$,Ng  
q\$6F)ha3  
#去掉上面两行前的"#" *P2[qhP2  
ml u 3K  
QH@>icAb  
2.打开extra目录下的httpd-ahssl.conf文件 S KXD^OH  
将下载的证书四个文件放置在conf下的ssl目录。 A^Cj1:,  
httpd-ahssl.conf添加如下代码 nr2r8u9r  
l1+[  
Listen 443 https H:S,\D?%2x  
<VirtualHost _default_:443> TGV  
  SSLEngine on S>_27r{  
  ServerName www.7428.cn:443 :q+N&j'3  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" or?%-)  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" g]$ 4~"|.  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" fCX*R"  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" \7Cg,Xn  
  ErrorDocument 404 "/404/" z,f=}t[.Y  
# DocumentRoot access handled globally in httpd.conf Utt>H@t[  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ ;b%{ilx:  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" TKI$hc3|L  
<Directory "${SRVROOT}/htdocs/7428cnwww"> m( 47s  
# Options Indexes Includes FollowSymLinks yTAvF\s$(  
Options Includes FollowSymLinks eaZQ2  
AllowOverride AuthConfig Limit FileInfo [ygF0-3ND  
    Require all granted zg}YGu|J  
</Directory> .p@N:)W6  
</virtualhost> *^XbDg9  
<VirtualHost _default_:443> pR$6,Vi  
  SSLEngine on }GZbo kWg.  
  ServerName 7428.cn:443 `~F5 wh~  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" _PXdzeI.  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" mh` |=M]8E  
 <IfModule rewrite_module> T~>#2N-Z  
    RewriteEngine On &=q! Wdw~  
    RewriteCond %{http_host} ^7428.cn [NC] #G;X' BN  
    RewriteRule ^(.*)$ https://www.7428.cn/$1 [L,R=301] <[Oo*:A!7  
    </IfModule> rU\[SrIhz  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" b-<HXn_Fd  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" Z!{UWegun  
  ErrorDocument 404 "/404/" hx!7w}[A  
# DocumentRoot access handled globally in httpd.conf Qi=*1QAkr  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ /L~m#HxWU  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" ujzW|HW^v  
<Directory "${SRVROOT}/htdocs/www7428cn"> :c8^db`"  
# Options Indexes Includes FollowSymLinks N6/T#UVns  
Options Includes FollowSymLinks Zhi})d3l  
AllowOverride AuthConfig Limit FileInfo #g v4  
    Require all granted @.$MzPQQI  
</Directory> .[j%sGdKl  
</virtualhost> 8vD3=yK%^  
保存后重启apache "JhimgwvY  
其中的php_admin_value open_basedir两行代码作用是防止同一个服务器下其他域名站跨站访问。安全至上。 rla:<6tt  
ErrorDocument 是配置找不到页面的时候跳转的404页面信息。 @$U e$  
<IfModule rewrite_module>里面的内容是实现https://7428.cn重定向到https://www.7428.cn,即不带www的跳转到 %e=!nRc  
ti_u!kNv  
带www的下。 ~j& ?/{7I  
%$9bce-fcG  
T.Zz;2I  
d"&3Q_2CD  
官方文件说明: z`#_F}v,m/  
1. 证书文件214329625123456.pem,包含两段内容,请不要删除任何一段内容。 buY D l  
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214329625123456.key、证书公钥文件public.pem、证书链文件chain.pem。 =5s$qb?#  
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214329625123456.key; dR[o|r  
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: 14l; *  
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) -!R l(if  
#Include conf/extra/httpd-ssl.conf ScJu_A f  
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: >\bPZf)tJ)  
# 添加 SSL 协议支持协议,去掉不安全的协议 !5.v'K'  
SSLProtocol all -SSLv2 -SSLv3 Qj!d^8  
# 修改加密套件如下 t2.juoI(  
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM \+]O*Bm&`8  
SSLHonorCipherOrder on e "_"vbk  
# 证书公钥配置 ]h8/M7k  
SSLCertificateFile cert/public.pem 3@HIpQM3  
# 证书私钥配置 5KaSWw/  
SSLCertificateKeyFile cert/214486743260863.key me$$he  
# 证书链配置,如果该属性开头有 '#'字符,请删除掉 6jtTT%>y  
SSLCertificateChainFile cert/chain.pem 4 Q&mC"  
( 4 ) 重启 Apache。 Is kSX  
--------------------- d<?X3&J  
作者:my0592   c}\ d5R_L  
只看该作者 安逸沙发  发表于: 2018-11-30
近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。 AijPN  
kPx]u\  
查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。 Wo:zU  
|'V<>v.v  
亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上: 8Pr&F  
rd&*j^?  
AcceptFilter http none >:Rt>po8|w  
AcceptFilter https none {#dp-5V  
E)&NP}k-P  
重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter E"9/YWv  
_Ep{|]:gw  
--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy U<ku_(2"#  
;w>3,ub(0  
==== < '>d0:>N  
ND9 n1WZ&x  
  5@R15q@c6n  
A:8FJ3'  
<IfModule mpm_winnt_module> Y5h)l<P>B  
    ThreadsPerChild      500 7})!>p )  
    MaxRequestsPerChild    10000 ^td!g1"<  
  AcceptFilter http None 4t +/  
   AcceptFilter https None GDo)6du  
</IfModule> V\k5h  
{jx#^n&5R  
  cjy0s+>>  
>n$E e J  
================== ) <}VP&:X  
\0*yxSg,^  
1、打开httpd.conf  `F- Dd4B  
2、查找 fr,CH{Uq  
  Ivt)Eg  
=An Z>6  
<span style="color:#333333">#AcceptFilter http none "u,~yxYWl  
#AcceptFilter https none</span> mISu o  
3、修改为 RqX4ep5j  
  R<0!?`b  
6Ymo%OT  
<span style="color:#333333">AcceptFilter http none `M pC<sit  
AcceptFilter https none</span> G"UH4n[1ur  
upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。  *>&N t  
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。  On96N|  
4、查找 ["#A-S  
复制代码 C"m0"O>  
B,VSFpPx  
<span style="color:#333333"><IfModule mpm_winnt_module> kmwrv -W  
    ThreadsPerChild          1920 <GFB'`L  
    MaxConnectionsPerChild   100000 o}^vREO  
</IfModule></span> zC>(!fJqq  
5、修改为 }yC,uEV  
  )i6U$,]  
k s`  
<span style="color:#333333"><IfModule mpm_winnt_module> U+}9X^  
    ThreadsPerChild          500 HOQ _T4  
    MaxConnectionsPerChild   100000 3<' Q`H>  
</IfModule></span> yI|?iBc7nC  
此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。  q2U"k  
--------------------- b+j_EA_b  
作者:my0592  
快速回复

限100 字节
安逸网提示:如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个