2013年7月22日星期一

Apache SSL安装与配置教程(Linux系统)--转自http://www.bootf.com/563.html

互联网的线路侦听无处不在,明文传输的数据一不留神就可能被窃取。而Apache的SSL加密连接可以帮助浏览者更加安全可靠的传输数据。通常来说,普通的HTTP协议URL是以 http:// 开头,而SSL加密协议则是以 https:// 开头。本文将介绍CentOS系统下通过仓库(yum、apt-get)配置apache中SSL加密模块的方法。
实验环境:
CentOS release 5.7 (Final)
Apache/2.2.3

首先安装Apache

[root@www ~]# yum install httpd
部署好Apache环境后,开始安装SSL模块

[root@www ~]# yum install mod_ssl
安装完成,直接重启Apache服务:

[root@www ~]# /etc/init.d/httpd restart
由于安装mod_ssl会创建一个默认的SSL证书,路径位于 /etc/pki/tls ,此时可以立即通过https访问服务器了:
https://IP/
如果不使用默认的证书,也可以使用OPENSSL手动创建证书。

使用OPENSSL手动创建证书
先执行以下命令安装OPENSSL:
1
[root@www ~]# yum install openssl
完成后即可按照以下步骤生成证书文件:
1、创建私钥
1
[root@www ~]# openssl genrsa -out server.key 1024
2、用私钥 server.key 文件生成证书签署请求 CSR
1
[root@www ~]# openssl req -new -key server.key -out server.csr
此步骤需要输入一些证书信息,解释如下:
Country Name (2 letter code) [GB]:【在此输入两个字符的国家名。中国的为 CN 】
State or Province Name (full name) [Berkshire]:【省份名称,如北京为 beijing 】
Locality Name (eg, city) [Newbury]:【城市名称,如 beijing】
Organization Name (eg, company) [My Company Ltd]:【公司名称】
Organizational Unit Name (eg, section) []:【部门名称】
Common Name (eg, your name or your server’s hostname) []:【姓名,通常即证书名】
Email Address []:【电子邮箱地址】
随后会要求输入一个challenge password(密码),无需输入,后面一律直接回车即可。
3、生成证书CRT文件
1
[root@www ~]# openssl x509 -days 3650 -req -in server.csr -signkey server.key -out server.crt
上面生成的证书有效期为10年(呵呵太长了点,一般三年就行了)
这时证书的相关文件就都已经生成好了。当前文件夹下应该有server.crt、server.csr、server.key这三个文件。
如果你是个完美论者,理所当然应该把这三个文件丢到证书的“官方目录”中去,省的把文件胡乱放置以后找不着:
1
[root@www ~]# mkdir /etc/pki/tls/mycert
2
[root@www ~]# mv server.* /etc/pki/tls/mycert
最后仅仅需要修改配置文件来指定证书路径:
4、指定证书路径
打开Apache的SSL配置文件 /etc/httpd/conf.d/ssl.conf :
1
[root@www ~]# vi /etc/httpd/conf.d/ssl.conf
找到如下一节:
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile /etc/pki/tls/mycert/server.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/pki/tls/mycert/server.key
注意红色的文字修改的部分。保证其路径分别指向刚刚创建的server.crt与server.key即可。
5、重启Apache2
1
[root@www ~]# /etc/init.d/httpd restart
这时新的证书便已经生效了。刷新浏览器,点击浏览器中的证书标志,便可以看到刚刚制作的证书信息:

Window 系统与Linux 系统的Mysql 双机热备

近日,由于实际工作要求,需要实现windows下的mysqlRedhat环境下的mysql实现双击热备功能,现把相关的配置方法总结如下。
Window 软件环境信息
Windows Server 2008
Mysql version 5.1.5
IP:192.168.0.200
Linux mysql 服务信息
Linux 5.0
Mysql version 5.0.3
IP:192.168.0.210
以下服务器Windows Server 2008 上的mysql简称W服务器,linux服务器上的mysql简称L服务器
前言:
配置之前必须确保两个数据库的表结构及数据完全一样,数据库的名称建议一样。这里将W服务器的数据库同步到L服务器上,这里是这样实现的,W服务器上通过phpMyAdmin将数据库导出MyDBName.sql文件,然后压缩成标准的zip格式文件,拷贝到L服务器上,在L服务器上通过phpMyAdmin先创建数据库MyDBName,之后将MyDBName.zip导入到的MyDBName数据库中即可。
这里注意两点:
1)             这里数据库名称用MyDBName有大小写主要是为了介绍的方便,建议数据库名称最好都用小写;
2)             为了保证W服务器上导出的数据库的sql文件能在L服务器上正常执行,建议用phpMyAdmin工具进行数据导出,因为linux环境下phpMyAdmin工具非常好用,这样可以避免因工具不懂而导致的不必要的问题。

一、主从热备

主数据库服务器:W服务器
备份服务器:L服务器

1.1 主服务器配置(W服务器上myql服务的配置)

先配置W服务器上的mysql.ini信息,主要是在配置文件里[mysqld] 节点下添加如下三行代码
log-bin=         #二进制日志路径很重要,如果没有logs文件夹可以自己建立,默认在mysql-bin目录下,也可自己指定目录
server-id=1       #主服务器ID,唯一性
binlog-do-db=MyDBName #需同步的数据库,如果没有本行,即表示同步所有的数据库
上面三行代码有时候在配置文件里面存在,只需把代码前面的“#”删除即可,添加完成上面三行代码,需要重启mysql服务.
接下来在Wmysql服务器上为Lmysql服务器添加一个专用的数据同步的用户帐号(repl,然后授权
grant replication slave on *.* to 'repl'@'192.168.0.210' identified by '123456';
之后通过命令myql  –h192.168.0.200  –uroot  –psa进入数据库,查看master状态
Mysql>show master status;
可看到这里有两个状态变量,它们十分重要

mysql > SHOW MASTER STATUS;
+--------------------+------------+---------------------+-------------------------+
| File     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+------------+---------------------+------------------------+
| mysql-bin.003 | 73   | MyDBName| mysql       |
+--------------------+------------+---------------------+-------------------------+

注意 File  mysql-bin.003  position  73
这个文件是对MyDBName 这个数据库的二进制日志记录,记录数据变化的当前记录条数是 73 ,对备份服务器非常重要,需要记住,后面要用到。

1.2 备份服务器配置(L服务器上的myql服务的配置)

L服务器上打开mysql.cnf
[mysqld]节点下添加如下内容
server-id=2
master-host=192.168.0.200  #主服务器ip
master-user=repl          #主服务器分配的用户名
master-password=123456     #主服务器分配的用户名对应的密码
master-port=3306                             #主服务器mysql端口,默认3306
master-connect-retry=10    #重复连接的次数
这里这样配置有时候可以,有时候会导致mysql服务无法启动,建议最好采用下面这种方式
[mysqld]节点下添加如下内容
server-id=2
修改完成后,需要重启mysql服务。
然后通过命令行登录msyql(mysql –hlocalhost –uroot -ppwd)
Mysql>slave stop; #先停止slave服务
然后执行
Mysql>change master to
>master_host='192.168.0.200',
>master_user='repl',
>master_password='123456',
>master_log_file=' mysql-bin.003' ,   #上面主服务器查询的值,有用吧
>master_log_pos=73;               #上面主服务器查询的值有用吧
正常执行之后,启动slave服务即可
Mysql>slave start;
之后查看slave状态
Mysql>show slave status; 能查看到信息,表示备份服务器设置成功。
接下来要做的工作就是测试主服务器数据库中表的字段信息修改后,备份服务器是不是会正常会被修改。

二、互为主从热备

在第一节主从热备配置中可以实现W数据库服务器表中字段信息修改直接同步到L服务器的数据库中,实现主从热备。
在主从热备的基础上配置,互为主从热备,步骤差不多。

2.1主服务器配置:L服务器上的myql服务的配置

L数据库服务器上运行mysql命令
Mysql>show master status;
显示的信息为empty,没有记录,需要在配置文件mysql.cnf中的[mysqld]添加如下几行信息即可
log-bin=   #可为空,也可写mysql-bin
binlog-do-db=MyDBName    #待同步的数据库名称
binlog-ignore-db=mysql     #忽略mysql数据库的同步
重启mysql服务

命令行执行Mysql>show master status;  可以看到结果
mysql > SHOW MASTER STATUS;
+--------------------+------------+---------------------+-------------------------+
| File     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+------------+---------------------+------------------------+
| mysql-bin.001 | 106   | MyDBName| mysql      |
+--------------------+------------+---------------------+-------------------------+
表示设置成功,同时执行命令mysql>show slave status;
可以看到很多信息,表明设置成功。

2.2备份服务器的配置:W服务器上mysql服务的配置

这里配置很简单,只需要执行mysql几个命令即可
通过命令行登录msyql(mysql –hlocalhost –uroot -ppwd)
Mysql>slave stop; #先停止slave服务
然后执行
Mysql>change master to
>master_host='192.168.0.210',    #L服务器的IP
>master_user='repl',                            #L服务器为W服务器创建的同步账户
>master_password='123456',     #L服务器为W服务器创建的同步账户的密码
>master_log_file=' mysql-bin.001' ,   #上面主服务器查询的值
>master_log_pos=106;               #上面主服务器查询的值
正常执行之后,启动slave服务即可
Mysql>slave start;
至此,mysql主从互为热备配置完成。类似的方法在网上搜索会有很多,以上内容是本人在实际工作中的总结,经过实践检验。
在实际的配置过程中,可能会存在其他的问题,一般都能很快解决,本次总结希望以后能够比较快速的处理类似的问题。