• 1261阅读
  • 1回复

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

楼层直达
apache 配置安装ssl证书实现https安全访问全过程 2:pq|eiF  
l*'8B)vN2  
安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。 KN}[N+V>  
1.#修改httpd.conf文件 = 1}-]ctVn  
LoadModule ssl_module modules/mod_ssl.so Y#]Y$n  
0QC*Z (  
Include conf/extra/httpd-ssl.conf Y%=A>~s*c:  
lq.0?(  
#去掉上面两行前的"#" G)<k5U4  
*D<sk7  
2lp.Td`{  
2.打开extra目录下的httpd-ahssl.conf文件 jC\R8_  
将下载的证书四个文件放置在conf下的ssl目录。 [MiD%FfcNH  
httpd-ahssl.conf添加如下代码 %mcuYR'D}  
klch!m=d  
Listen 443 https CJu;X[6  
<VirtualHost _default_:443> 10[~ki-1;  
  SSLEngine on zJ9,iJyuD  
  ServerName www.7428.cn:443 Hb]7>[L  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" ^mz_T+UOe  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" 5cfzpOqr0  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" Yd<~]aXM   
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" V)a6H^l  
  ErrorDocument 404 "/404/" )Z; Y,g  
# DocumentRoot access handled globally in httpd.conf [p7le8=  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ 3>jz3>v@  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" i#-Jl7V[a  
<Directory "${SRVROOT}/htdocs/7428cnwww"> Tbwq_3f K  
# Options Indexes Includes FollowSymLinks I|LS_m  
Options Includes FollowSymLinks Y"lxh/l$}  
AllowOverride AuthConfig Limit FileInfo T.|0;Eb  
    Require all granted 57j:Lw~   
</Directory> qB=pp!zQ  
</virtualhost> b\+|g9Tm  
<VirtualHost _default_:443> sXydMk`J  
  SSLEngine on 2h:f6=)r/u  
  ServerName 7428.cn:443 RXof$2CZS  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" d,[KcX  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" .kYzB.3@]  
 <IfModule rewrite_module> WR-C_1-pT  
    RewriteEngine On C>u 3n^  
    RewriteCond %{http_host} ^7428.cn [NC] $Us@fJr  
    RewriteRule ^(.*)$ https://www.7428.cn/$1 [L,R=301] sogbD9Jc  
    </IfModule> IMR|a*=`c  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" -#o+x Jj  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" (g)@wNBW  
  ErrorDocument 404 "/404/" b mm@oi  
# DocumentRoot access handled globally in httpd.conf qN0#=X  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ 4GfLS.Ip  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" aK&+p#4t  
<Directory "${SRVROOT}/htdocs/www7428cn"> _%2Umy|  
# Options Indexes Includes FollowSymLinks 0V#t ;`Q3  
Options Includes FollowSymLinks w.Vynb  
AllowOverride AuthConfig Limit FileInfo j>Z]J'P  
    Require all granted cGc|n3(  
</Directory> eE{L>u  
</virtualhost> U>+~.|'V9  
保存后重启apache P{Z71a5  
其中的php_admin_value open_basedir两行代码作用是防止同一个服务器下其他域名站跨站访问。安全至上。 _o?(t\B9{  
ErrorDocument 是配置找不到页面的时候跳转的404页面信息。 z;C=d(|nN  
<IfModule rewrite_module>里面的内容是实现https://7428.cn重定向到https://www.7428.cn,即不带www的跳转到 v|I5Gz$qpa  
<VU4rk^=  
带www的下。 o1WidJ"  
oe |e+  
eM+;x\jo?  
daIL> c"  
官方文件说明: n+qVT4o  
1. 证书文件214329625123456.pem,包含两段内容,请不要删除任何一段内容。 tt ]V$V  
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214329625123456.key、证书公钥文件public.pem、证书链文件chain.pem。 nbASpa(  
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214329625123456.key; egvy#2b@  
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: +%Y c4  
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) f4k5R  
#Include conf/extra/httpd-ssl.conf T_x+sv=|X!  
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: N 2"3~  #  
# 添加 SSL 协议支持协议,去掉不安全的协议 l-S'ATZ0p  
SSLProtocol all -SSLv2 -SSLv3 zZ9<4"CIk  
# 修改加密套件如下 v0C;j (2zb  
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM e[QxFg0E  
SSLHonorCipherOrder on :@ E1Pun?  
# 证书公钥配置 43>9)t  
SSLCertificateFile cert/public.pem ,MM>cOQ  
# 证书私钥配置 @?Gw|bP  
SSLCertificateKeyFile cert/214486743260863.key 7w Q+giu  
# 证书链配置,如果该属性开头有 '#'字符,请删除掉 sm;E2BR$ `  
SSLCertificateChainFile cert/chain.pem S,9NUt  
( 4 ) 重启 Apache。 (/U)> %n  
--------------------- *:\:5*SY  
作者:my0592   9q1HSJ1)  
只看该作者 安逸沙发  发表于: 2018-11-30
近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。 CU`yi.)T{  
TKH!,Ow9A  
查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。 ,vcg%~-  
JX)%iJq#  
亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上: n=F|bW  
9B)<7JJX!J  
AcceptFilter http none ZbAg^2  
AcceptFilter https none a>H8, a  
'}5Yc,  
重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter w;p~|!  
k>.n[`>$6|  
--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy 'kb|!  
VN/v]  
==== 'eYM;\%('  
6%A_PP3Z  
  umuE5MKY<  
rtn.^HF  
<IfModule mpm_winnt_module> $8{v_2C){  
    ThreadsPerChild      500 oMeIXb)z  
    MaxRequestsPerChild    10000 "8l& m6`U-  
  AcceptFilter http None E[a|.lnV  
   AcceptFilter https None xT8pwTO  
</IfModule> 8`B]UcL)  
p0sq{d~  
  0[In5II  
nXJG4$G  
================== |y$8!*S~(  
]t)#,'$^[W  
1、打开httpd.conf    !XQq*  
2、查找 )aAKxC7w  
  ]9PQKC2&  
; S~  
<span style="color:#333333">#AcceptFilter http none }8eu 9~   
#AcceptFilter https none</span> !4mg]~G  
3、修改为 -$sVqR>_  
  %CIRN}  
jz$ ]"\G#  
<span style="color:#333333">AcceptFilter http none GV0-"9uwX~  
AcceptFilter https none</span> $2w][ d1  
upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。  Xj5oHHwn  
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。  *W-:]t3CR  
4、查找 Xkp?)x3~X  
复制代码 KdXqW0nm  
h.jO3q  
<span style="color:#333333"><IfModule mpm_winnt_module> y$y!{R@   
    ThreadsPerChild          1920 ?egZkg=U  
    MaxConnectionsPerChild   100000 Seh(G  
</IfModule></span> YL&)@h  
5、修改为 Q<>b3X>O  
  3IG<Ot9  
#QNa| f#=  
<span style="color:#333333"><IfModule mpm_winnt_module> '81c>qA  
    ThreadsPerChild          500 G@zJf)u}  
    MaxConnectionsPerChild   100000 Y?ZzFd,i&  
</IfModule></span> tU0jFBB  
此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。  #%g>^i={ky  
--------------------- 8j)*T9  
作者:my0592  
快速回复

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