• 1255阅读
  • 1回复

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

楼层直达
apache 配置安装ssl证书实现https安全访问全过程 6R`q{}.  
|+-D@22 y  
安装证书(贴上未来智库站配置ssl的代码内容),官方的配置复杂且不具有通用性。  Rix|LKk{  
1.#修改httpd.conf文件 htgtgW9 ^P  
LoadModule ssl_module modules/mod_ssl.so !L|}/u3v  
te<lCD6  
Include conf/extra/httpd-ssl.conf !@.9>"FU  
XWuHH;~*L  
#去掉上面两行前的"#" \vKK q/f  
[5"F=tT7WP  
L\GjG&Y5  
2.打开extra目录下的httpd-ahssl.conf文件 $;k2b4u  
将下载的证书四个文件放置在conf下的ssl目录。 !e<D2><^  
httpd-ahssl.conf添加如下代码 /Wx({N'h$  
P{2ue`w[  
Listen 443 https ` !um )4  
<VirtualHost _default_:443> ru>c\X^|  
  SSLEngine on W Z_yaG$U  
  ServerName www.7428.cn:443 3$~oQC  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" U3-cH  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" Q7{/ T0  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" O]1aez[  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" 1SwKd*aRR?  
  ErrorDocument 404 "/404/" S=^kR [O"  
# DocumentRoot access handled globally in httpd.conf #GVf+8"  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ yh'P17N|q  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" |z 8Wh  
<Directory "${SRVROOT}/htdocs/7428cnwww"> a0/[L  
# Options Indexes Includes FollowSymLinks I #bta  
Options Includes FollowSymLinks ?E6 C|A$I  
AllowOverride AuthConfig Limit FileInfo [+2iwfD  
    Require all granted "T~ce@  
</Directory> )1ct%rue  
</virtualhost> Ty5}5)CRZ  
<VirtualHost _default_:443> wticA#mb  
  SSLEngine on NN"!kuM  
  ServerName 7428.cn:443 8Rric[v  
  SSLCertificateFile "${SRVROOT}/conf/ssl/214329625123456.pem" Pq<]`9/w^w  
  SSLCertificateKeyFile "${SRVROOT}/conf/ssl/214329625123456.key" d>-k-X-[  
 <IfModule rewrite_module> cd3;uB4\,  
    RewriteEngine On uk<JV*R=  
    RewriteCond %{http_host} ^7428.cn [NC] Jr.4Y>;}e3  
    RewriteRule ^(.*)$ https://www.7428.cn/$1 [L,R=301] o4Hp|iK&0  
    </IfModule> rI;84=v2&9  
php_admin_value open_basedir "${SRVROOT}/htdocs/www7428cn;C:/windows/TEMP" Cj3C%W  
  DocumentRoot "${SRVROOT}/htdocs/www7428cn" N^@aO&+A  
  ErrorDocument 404 "/404/" WcZck{ehd  
# DocumentRoot access handled globally in httpd.conf Z+M* z;  
#    CustomLog "${SRVROOT}/logs/ssl_request.log" \ oJln"-M1nx  
#          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" W"&Y7("y  
<Directory "${SRVROOT}/htdocs/www7428cn"> ^wTod\y  
# Options Indexes Includes FollowSymLinks U_l#lGA(H  
Options Includes FollowSymLinks ]J)3y+;P  
AllowOverride AuthConfig Limit FileInfo 5* 3T+OK  
    Require all granted {wy#HYhv  
</Directory> bS"zp6Di  
</virtualhost> S{7 R6,B5  
保存后重启apache S*9qpes-m|  
其中的php_admin_value open_basedir两行代码作用是防止同一个服务器下其他域名站跨站访问。安全至上。 >xK!J?!K  
ErrorDocument 是配置找不到页面的时候跳转的404页面信息。 V^/]h u  
<IfModule rewrite_module>里面的内容是实现https://7428.cn重定向到https://www.7428.cn,即不带www的跳转到 { 2\.  
lN,)T%[0-  
带www的下。 SZ3UR  
p0Ra`*f  
dp~] Wx  
K! e51P  
官方文件说明: %FSY}65  
1. 证书文件214329625123456.pem,包含两段内容,请不要删除任何一段内容。 ~ u',Way  
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214329625123456.key、证书公钥文件public.pem、证书链文件chain.pem。 W1;u%>Uh  
( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214329625123456.key; 8 bpYop7 L  
( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: O;m@fS2%3  
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) QxS=W2iN  
#Include conf/extra/httpd-ssl.conf ObIL  w  
( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: (//f"c]/  
# 添加 SSL 协议支持协议,去掉不安全的协议 G Rq0nhJ  
SSLProtocol all -SSLv2 -SSLv3 6<>T{2b:(p  
# 修改加密套件如下 x!R pRq9  
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM yG..B  
SSLHonorCipherOrder on 5?M d  
# 证书公钥配置 'j27.Ry.  
SSLCertificateFile cert/public.pem ;.EW7`)Z  
# 证书私钥配置 H4{CiZ  
SSLCertificateKeyFile cert/214486743260863.key *uG!U%jY)  
# 证书链配置,如果该属性开头有 '#'字符,请删除掉 K#_x.: <J  
SSLCertificateChainFile cert/chain.pem 6L}}3b h  
( 4 ) 重启 Apache。 |'ML )`c[  
--------------------- @eOD+h'  
作者:my0592   1 |T{RY5  
只看该作者 安逸沙发  发表于: 2018-11-30
近来,有个项目跑在WAMP环境下,可是当多个人访问时候,总是容易卡死。 yn$1nt4  
>l><d!hw  
查看apache的错误日志,几乎每一次卡死都是报同一个错:[mpm_winnt:warn] [pid 6508:tid 5008] (OS 64)指定的网络名不再可用。  : AH00341: winnt_accept: Asynchronous AcceptEx failed,网上大部分解决方法是,加Win32DisableAcceptEx,这个是问题所在,但是在apache2.4下面并不奏效,加上反而不能启动apache了。 _pZ <  
k ,ldi  
亲测,apache2.4报这个错,可以直接找到httpd.conf,末尾加上: $[?N^   
aJf3rHX  
AcceptFilter http none EyVu-4L:#  
AcceptFilter https none S|)atJJ0G"  
m(MQ  
重启apache,就可以了。希望能够帮更多人解决类似问题。该方法,有幸找到了http://www.oschina.net/question/998019_112854?fromerr=SANUgxwY,这里面的讨论,在此鸣谢。至于其原理,可以参考:http://httpd.apache.org/docs/2.4/mod/core.html#acceptfilter q4w]9b/  
"{qnm+G  
--------------------- 本文来自 captian36 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u011220840/article/details/52291329?utm_source=copy \A01 1R&  
uA[ :  
==== @ Do.Wgt  
8.. |-<w  
  e ar:`11z  
XP o#qT8n  
<IfModule mpm_winnt_module> xok T  
    ThreadsPerChild      500 9ghzK?Yc  
    MaxRequestsPerChild    10000 /eH37H  
  AcceptFilter http None wU!-sf;]y  
   AcceptFilter https None (?8i^T?WP=  
</IfModule> u8KQV7E  
|[iO./ zP  
  ;z9 ,c  
B-]bhA4|:  
================== P HOngn  
-ak. wwx\  
1、打开httpd.conf  3e^0W_>6  
2、查找 x3FB`3y~s  
  +g7]ga  
~!mY0odH  
<span style="color:#333333">#AcceptFilter http none ww7nQ}H5(  
#AcceptFilter https none</span> " ]G'^  
3、修改为 +J C"@  
  aWRi`poZT  
u(8{5"C  
<span style="color:#333333">AcceptFilter http none Uaux0W  
AcceptFilter https none</span> FO[ s;dmzu  
upupw默认添加了这个配置只是注释掉了,我们去掉#号,开启配置。  3=oxT6"k  
此处可以解决某些浏览器导致apache慢或者假死不响应的情况,提高兼容性。  f?=0Wzb  
4、查找 !9HWx_,|Z  
复制代码 Ig?9"{9p  
)K]p^lO  
<span style="color:#333333"><IfModule mpm_winnt_module> (z)#}TC  
    ThreadsPerChild          1920 p|nPu*R-\  
    MaxConnectionsPerChild   100000 Ws0)B8y,|  
</IfModule></span> DVwB}W~  
5、修改为 P8h|2,c%  
  Z-4/xi7  
?MSwr_eZH  
<span style="color:#333333"><IfModule mpm_winnt_module> iuXXFuh  
    ThreadsPerChild          500 i9qIaG/  
    MaxConnectionsPerChild   100000 2 #yDVN$  
</IfModule></span> 6hR ` sE  
此处主要是为了解决开启了AcceptFilter参数后如果ThreadsPerChild的值大于512会频繁重启apache的问题,ThreadsPerChild是apache工作进程的线程数最大值到1920超出后会报错,MaxConnectionsPerChild是工作进程最大处理多少请求后载入新的进程。  z#`Qfvu6Hi  
--------------------- Zw{?^6;cS  
作者:my0592  
快速回复

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