• 251阅读
  • 1回复

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

楼层直达
apache 配置安装ssl证书实现https安全访问全过程 K/KZ}PI-O  
,*%%BTnR  
安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。 cU?A|'  
1.#修改httpd.conf文件 \-$wY%7  
LoadModule ssl_module modules/mod_ssl.so ,IF3VE&r  
vdAaqM6D  
Include conf/extra/httpd-ssl.conf w,> ceu/  
W~2`o*\l  
#去掉上面两行前的"#" 3#`_t :"A  
n=WwB(}q  
+KgLe>-}  
2.打开extra目录下的httpd-ahssl.conf文件 AX,V* s  
将下载的证书四个文件放置在conf下的ssl目录。 l8 k@.<nCO  
httpd-ahssl.conf添加如下代码 |N/Grk4  
dc.9:u*w  
Listen 443 https jcD_<WSe  
<VirtualHost _default_:443> kN_ i0~y@-  
  SSLEngine on #{KYsDtvx  
  ServerName www.7428.cn:443 KM li!.(b  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" ZFwUau  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" 5IE3[a%X  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" qM78s>\-h  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" z#9Tg"8]  
  ErrorDocument 404 "/404/" n'*4zxAA  
# DocumentRoot access handled globally in httpd.conf 4FrP%|%E~  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ `t[b0; 'OH  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" j'r"_*%  
<Directory "${SRVROOT}/htdocs/7428cnwww"> 9#(Nd, m})  
# Options Indexes Includes FollowSymLinks ayF+2(vch)  
Options Includes FollowSymLinks I<E~=  
AllowOverride AuthConfig Limit FileInfo N)yCGo  
    Require all granted !UHWCJ< <w  
</Directory> 5<64 C}fE3  
</virtualhost> H!SFSgAu  
<VirtualHost _default_:443> $?P5A E  
  SSLEngine on lV%oIf[OB  
  ServerName 7428.cn:443 F/%M`?m"ie  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" SG$V%z"e  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" c'|](vOd]  
 <IfModule rewrite_module> TXL!5, X_  
    RewriteEngine On s5s'[<  
    RewriteCond %{http_host} ^7428.cn [NC] WUBI( g\  
    RewriteRule ^(.*)$ https://www.7428.cn/$1 [L,R=301] {,+{,Ere  
    </IfModule> ;_X2E~i[  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" gpw,bV  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" WAt= T3  
  ErrorDocument 404 "/404/" p>N8g#G  
# DocumentRoot access handled globally in httpd.conf +'|nsIx,  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ lrjVD(R=g  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" AqiH1LAE  
<Directory "${SRVROOT}/htdocs/www7428cn"> m'zve%G  
# Options Indexes Includes FollowSymLinks ^c<8|lK L@  
Options Includes FollowSymLinks r2*8.j51  
AllowOverride AuthConfig Limit FileInfo a]/KJn /B(  
    Require all granted 9:E:3%%  
</Directory> Zg%tN#6y  
</virtualhost> k|,Y_h0Y  
保存后重启apache  + \]-"  
其中的php_admin_value open_basedir两行代码作用是防止同一个服务器下其他域名站跨站访问。安全至上。 43 vF(<r&f  
ErrorDocument 是配置找不到页面的时候跳转的404页面信息。 G@KDRv  
<IfModule rewrite_module>里面的内容是实现https://7428.cn重定向到https://www.7428.cn,即不带www的跳转到 ypgM&"eR  
eEBo:Rc9  
带www的下。 >F>VlRg  
zO2=o5nF.  
UEx13!iFo  
TQu.jC  
官方文件说明: H| _@9V  
1. 证书文件214329625123456.pem,包含两段内容,请不要删除任何一段内容。 oI!"F=?&6  
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214329625123456.key、证书公钥文件public.pem、证书链文件chain.pem。 Gy[anDE&  
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214329625123456.key; q9dplEe5  
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: Ims?  
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) P z~jW):E  
#Include conf/extra/httpd-ssl.conf s1E 0atT  
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: Z;V(YK(WO.  
# 添加 SSL 协议支持协议,去掉不安全的协议 O_qwD6s-_  
SSLProtocol all -SSLv2 -SSLv3 2*<Zc|uNW  
# 修改加密套件如下 mI5J] hk  
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM 2GORGS%  
SSLHonorCipherOrder on _7\`xU  
# 证书公钥配置 Ufl\ uq3'H  
SSLCertificateFile cert/public.pem } A+ncabm  
# 证书私钥配置 c+&Kq.~K  
SSLCertificateKeyFile cert/214486743260863.key $cIaLq  
# 证书链配置,如果该属性开头有 '#'字符,请删除掉 f*<Vq:N=\  
SSLCertificateChainFile cert/chain.pem ]}PXN1(  
( 4 ) 重启 Apache。 4P[MkMoC  
--------------------- ?[d4HKs  
作者:my0592   ttUK~%wSx  
只看该作者 安逸沙发  发表于: 2018-11-30
近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。 54;l*}8Hl  
4|I7:~  
查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。 5XhK#X%:A  
{/th`#o4b  
亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上: Sa( yjF1  
1y_fQ+\2A  
AcceptFilter http none BLWA!-  
AcceptFilter https none N`y}Gs  
Q:'qw#P/C  
重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter !hwzKm=%N  
6~:W(E}  
--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy ^D% }V-"  
 muK'h`  
==== JUe K"|fA  
!D.= 'V  
  Wq=ZU\Y  
zgEr,nF  
<IfModule mpm_winnt_module> h(+m<J  
    ThreadsPerChild      500 c,3'wnui  
    MaxRequestsPerChild    10000 I?^Q084  
  AcceptFilter http None bQ|#_/?  
   AcceptFilter https None ^P3g9'WK  
</IfModule> c<JM1  
2|T|K?R^  
  }"g21-T^  
=,/A\F  
================== h;4y=UU  
eCPKpVhP  
1、打开httpd.conf  lzr>WbM{{p  
2、查找 c1)BGy li  
  .NNcc4+  
>~^mIu_BH  
<span style="color:#333333">#AcceptFilter http none Y7b,td1  
#AcceptFilter https none</span> ( TbB?X}  
3、修改为 VAF:Z  
  #Tg|aW$(*  
w/^0tZ~  
<span style="color:#333333">AcceptFilter http none 9m#H24{V'  
AcceptFilter https none</span> +lDGr/  
upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。  2o s6c te  
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。  x=)30y3*;  
4、查找 "z(fBnv  
复制代码 1TD&&EC  
0-&s J  
<span style="color:#333333"><IfModule mpm_winnt_module> P7BJ?x  
    ThreadsPerChild          1920 v^lm8/}NO  
    MaxConnectionsPerChild   100000 Lct+cKKU  
</IfModule></span> b$`4Nn|  
5、修改为 3/SqXu  
  g)r ,q&*  
WE Svkm;  
<span style="color:#333333"><IfModule mpm_winnt_module> b09#+CH?  
    ThreadsPerChild          500 as!|8JE`  
    MaxConnectionsPerChild   100000 !f]3Riw-=,  
</IfModule></span> abk:_  
此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。  <&m  
--------------------- ;Wrd=)Ka  
作者:my0592  
快速回复

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