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_3fK # 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 文件,找到以下内容并去掉“#”:
+%Yc4 #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
7wQ+giu # 证书链配置,如果该属性开头有 '#'字符,请删除掉
sm;E2BR$
` SSLCertificateChainFile cert/chain.pem
S,9NUt ( 4 ) 重启 Apache。
(/U)>%n ---------------------
*:\:5*SY 作者:my0592
9q1HSJ1)