• 1259阅读
  • 1回复

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

楼层直达
apache 配置安装ssl证书实现https安全访问全过程 LnS >3$t*  
Z"X*FzFo  
安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。 u(702S4  
1.#修改httpd.conf文件 Z;D3lbqE  
LoadModule ssl_module modules/mod_ssl.so D5u"4\g< &  
^~ $&  
Include conf/extra/httpd-ssl.conf \*aLyyy3  
^1=|(Z/  
#去掉上面两行前的"#" +z0}{,HX  
f*{;\n (.t  
% T\N@  
2.打开extra目录下的httpd-ahssl.conf文件 z/k~+-6O  
将下载的证书四个文件放置在conf下的ssl目录。 Cnci%e o  
httpd-ahssl.conf添加如下代码 5dw@g4N %^  
/(ju  
Listen 443 https cjC6\.+l3  
<VirtualHost _default_:443> "UGj4^1f  
  SSLEngine on #r)1<}_e#  
  ServerName www.7428.cn:443 Ny,A#-?  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" \}QuNwc   
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" afiK!0col2  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" 76Vyhf&7  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" I5yd )72  
  ErrorDocument 404 "/404/" ZQ'  z  
# DocumentRoot access handled globally in httpd.conf :8Ts'OGwI  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ `}8@[iB'  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" }42qMOi#w1  
<Directory "${SRVROOT}/htdocs/7428cnwww"> 7M#$: Fdb  
# Options Indexes Includes FollowSymLinks wQ=yY$VP  
Options Includes FollowSymLinks 2C33;?M  
AllowOverride AuthConfig Limit FileInfo 5 (21gW9  
    Require all granted *- IlF]  
</Directory> 2u*h*/  
</virtualhost> :O'C:n<g  
<VirtualHost _default_:443> ZCE%38E N  
  SSLEngine on Q_]!an(  
  ServerName 7428.cn:443 ^0x.'G?  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" Fi?Q 4b  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" 9 yW ~79n  
 <IfModule rewrite_module> <5ft6a2fQ  
    RewriteEngine On }} ``~  
    RewriteCond %{http_host} ^7428.cn [NC] jW1YTQ  
    RewriteRule ^(.*)$ https://www.7428.cn/$1 [L,R=301] fzRyG-cEpj  
    </IfModule> YV1a 3  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" QxL@'n#5   
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" <;z[+6T  
  ErrorDocument 404 "/404/" O$"bd~X  
# DocumentRoot access handled globally in httpd.conf 4V228>9w  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ tKG;k"wk  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" "M9TB. O  
<Directory "${SRVROOT}/htdocs/www7428cn"> '0R/6Z|/Y  
# Options Indexes Includes FollowSymLinks W$JY M3!  
Options Includes FollowSymLinks [}A_uOGEP  
AllowOverride AuthConfig Limit FileInfo 8/Et&TJ`  
    Require all granted VD9 q5tt7  
</Directory> Z7/vrME6  
</virtualhost>  ``(}4 a  
保存后重启apache }.fL$,7a  
其中的php_admin_value open_basedir两行代码作用是防止同一个服务器下其他域名站跨站访问。安全至上。 '^Pq(b~  
ErrorDocument 是配置找不到页面的时候跳转的404页面信息。 ?G4iOiyt  
<IfModule rewrite_module>里面的内容是实现https://7428.cn重定向到https://www.7428.cn,即不带www的跳转到 K,x$c %  
2j8Cv:{Nn%  
带www的下。 xNC* ]8d  
F3r S6_  
<KHv|)ak  
wD<vg3e[H  
官方文件说明: 6PiEa(  
1. 证书文件214329625123456.pem,包含两段内容,请不要删除任何一段内容。 a<f;\$h]  
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214329625123456.key、证书公钥文件public.pem、证书链文件chain.pem。 #C"7 l6'a  
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214329625123456.key; ?D1x;i9<  
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: xh{mca>?G  
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) )2) Zz +<  
#Include conf/extra/httpd-ssl.conf @b]VCv0*f%  
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: w>v5oy8s-  
# 添加 SSL 协议支持协议,去掉不安全的协议 .KFA218h*x  
SSLProtocol all -SSLv2 -SSLv3 uPFRh~ (b  
# 修改加密套件如下 J=@hk@Nq#  
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM vkd *ER^  
SSLHonorCipherOrder on buRhQ"  
# 证书公钥配置 D._{E*vg  
SSLCertificateFile cert/public.pem 0xN!DvCg>.  
# 证书私钥配置 AeN 3<|RN  
SSLCertificateKeyFile cert/214486743260863.key b([:,T7  
# 证书链配置,如果该属性开头有 '#'字符,请删除掉 S<V-ZV&_:U  
SSLCertificateChainFile cert/chain.pem % =y;L:S\p  
( 4 ) 重启 Apache。 $6W3EOl  
--------------------- Og +)J9#  
作者:my0592   yXkt:O,i  
只看该作者 安逸沙发  发表于: 2018-11-30
近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。 dzRnI*  
%+ : $uk[  
查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。 UY}EW`$#m  
0 H0U%x8  
亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上: "%rzL.</  
VoC|z Rd_  
AcceptFilter http none Q79WGW  
AcceptFilter https none CsX@u#  
n3_| # 1Qu  
重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter 7TB&Q*Zf  
= J0r,dR  
--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy 95.s,'0  
;-quK%VO!  
==== sB=s .`9  
X3j|J/  
  30{+gYA  
|[iEi  
<IfModule mpm_winnt_module> )&[Zw{6P  
    ThreadsPerChild      500 #&Fd16ov  
    MaxRequestsPerChild    10000 +a|u,'u  
  AcceptFilter http None JpZ3T~Wrf  
   AcceptFilter https None 1>)uI@?Rb  
</IfModule> 7!A3PDAe  
uz@lz +  
  ]//D d/L6  
jTN!\RH9NF  
================== IRbZ ;*3dO  
`r+`vJ$  
1、打开httpd.conf  $Hal]  
2、查找 18JAca8Zs  
  lt|UehJ F  
u<nPJeE  
<span style="color:#333333">#AcceptFilter http none c59l/qoz  
#AcceptFilter https none</span> O^4K o}  
3、修改为 g({dD;  
  ZJ}|t  
ym6gj#2m  
<span style="color:#333333">AcceptFilter http none Gu\lV c  
AcceptFilter https none</span> z=a{;1A  
upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。  $jNp-5+Q;  
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。  ns9a+QQ  
4、查找 P:2 0i*QU  
复制代码 N TL`9b  
.RxAYf|  
<span style="color:#333333"><IfModule mpm_winnt_module> 3NC-)S  
    ThreadsPerChild          1920 tJ@5E^'4  
    MaxConnectionsPerChild   100000 mdPEF)-  
</IfModule></span> pTk1iGfB  
5、修改为 )gP0+W!u  
  [G[|auKF  
K\`>'C2_V  
<span style="color:#333333"><IfModule mpm_winnt_module> pt+[BF6P  
    ThreadsPerChild          500 ::A]p@  
    MaxConnectionsPerChild   100000 XB'PEvh8  
</IfModule></span> M;K%=l$NG  
此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。  uRfFPOYH  
--------------------- +>wBGVvS  
作者:my0592  
快速回复

限100 字节
安逸网提示:批量上传需要先选择文件,再选择上传
 
认证码:
上一个 下一个