apache 配置安装ssl证书实现https安全访问全过程
6R`q{}. |+-D@22y 安装证书(贴上未来智库站配置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 #去掉上面两行前的"#"
\vKKq/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
?E6C|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
8Rr ic[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 协议支持协议,去掉不安全的协议
GRq0nhJ SSLProtocol all -SSLv2 -SSLv3
6<>T{2b:(p # 修改加密套件如下
x!RpRq9 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