| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 数据库教程 >> MySQL >> 文章正文>>>>>> 
MySQL建立安全的SSL连接通道详解
通常我们在编译MySQL的时候都加入了with-openssl选项,但这并不代表MySQL已经支持了OpenSSL连接,我们可以通过如下命令进行检测:

  SHOW VARIABLES LIKE 'have_openssl';

  如果显示DISABLED则表明MySQL尚不支持OpenSSL.

  建立SSL证书

  ;;建几个目录和文件

  mkdir /usr/local/myssl

  cd /usr/local/myssl

  mkdir private newcerts

  touch index.txt

  echo "01" > serial

  ;;拷贝一份OpenSSL的缺省配置到当前目录

  cp /usr/local/openssl/openssl.cnf .

  ;;修改当前目录下的openssl.cnf,将。/demoCA替换为/usr/local/myssl,replace的具体用法见man

  replace ./demoCA /usr/local/myssl —— /usr/local/myssl/openssl.cnf

  ;;建立根证书

  openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -config openssl.cnf

  # Sample output:

  # Using configuration from /usr/local/myssl/openssl.cnf

  # Generating a 1024 bit RSA private key

  # ……++++++

  # ……++++++

  # writing new private key to '/usr/local/myssl/private/cakey.pem'

  # Enter PEM pass phrase:

  # Verifying password - Enter PEM pass phrase:

  # ——

  # You are about to be asked to enter information that will be

  # incorporated into your certificate request.

  # What you are about to enter is what is called a Distinguished Name

  # or a DN.

  # There are quite a few fields but you can leave some blank

  # For some fields there will be a default value,

  # If you enter '.', the field will be left blank.

  # ——

  # Country Name (2 letter code) [AU]:CN

  # State or Province Name (full name) [Some-State]:ZJ

  # Locality Name (eg, city) []:JX

  # Organization Name (eg, company) [Internet Widgits Pty Ltd]:Centeur CA

  # Organizational Unit Name (eg, section)[] :HN

  # Common Name (eg, YOUR name)[] :MySQL admin

  # Email Address []:lypdarling@gmail.com

  ;;建立服务端证书

  openssl req -new -keyout server-key.pem -out server-req.pem -days 3600 -config openssl.cnf

  # Sample output:

  # Using configuration from /usr/local/myssl/openssl.cnf

  # Generating a 1024 bit RSA private key

  # ……++++++

  # ……++++++

  # writing new private key to '/usr/local/myssl/server-key.pem'

  # Enter PEM pass phrase:

  # Verifying password - Enter PEM pass phrase:

  # ——

  # You are about to be asked to enter information that will be

  # incorporated into your certificate request.

  # What you are about to enter is what is called a Distinguished Name

  # or a DN.

  # There are quite a few fields but you can leave some blank

  # For some fields there will be a default value,

  # If you enter '.', the field will be left blank.

  # ——

  # Country Name (2 letter code) [AU]:CN

  # State or Province Name (full name) [Some-State]:ZJ

  # Locality Name (eg, city) []:JX

  # Organization Name (eg, company) [Internet Widgits Pty Ltd]:Centeur CA

  # Organizational Unit Name (eg, section) []:HN

  # Common Name (eg, YOUR name) []:MySQL server

  # Email Address []:lypdarling@gmail.com

  #

  # Please enter the following 'extra' attributes

  # to be sent with your certificate request

  # A challenge password []:

  # An optional company name []:

;;移除server-key中的passphrase(可选)

  openssl rsa -in server-key.pem -out server-key.pem

  ;;签署服务端证书

  openssl ca -policy policy_anything -out server-cert.pem -config openssl.cnf -infiles server-req.pem

  # Sample output:

  # Using configuration from /usr/local/myssl/openssl.cnf # Enter PEM pass phrase:

  # Check that the request matches the signature

  # Signature ok

  # The Subjects Distinguished Name is as follows

  # countryName :PRINTABLE:'CN'

  # organizationName :PRINTABLE:'Centeur CA'

  # commonName :PRINTABLE:'MySQL admin'

  # Certificate is to be certified until May 18 16:05:46 2006 GMT

  # (365 days)

  # Sign the certificate? [y/n]:y

  #

  #

  # 1 out of 1 certificate requests certified, commit? [y/n]y

  # Write out database with 1 new entries

  # Data Base Updated

  ;;建立客户端证书

  openssl req -new -keyout client-key.pem -out client-req.pem -days 3600 -config openssl.cnf

  # Sample output:

  # Using configuration from /usr/local/myssl/openssl.cnf

  # Generating a 1024 bit RSA private key

  # ……++++++

  # ……++++++

  # writing new private key to '/usr/local/myssl/client-key.pem'

  # Enter PEM pass phrase:

  # Verifying password - Enter PEM pass phrase:

  # ——

  # You are about to be asked to enter information that will be

  # incorporated into your certificate request.

  # What you are about to enter is what is called a Distinguished Name

  # or a DN.

  # There are quite a few fields but you can leave some blank # For some fields there will be a default value,

  # If you enter '.', the field will be left blank.

  # ——# Country Name (2 letter code) [AU]:CN

  # State or Province Name (full name) [Some-State]:ZJ

  # Locality Name (eg, city) []:JX

  # Organization Name (eg, company) [Internet Widgits Pty Ltd]:Centeur CA

  # Organizational Unit Name (eg, section) []:HN

  # Common Name (eg, YOUR name) []:MySQL user

  # Email Address []:lypdarling@gmail.com

  #

  # Please enter the following 'extra' attributes

  # to be sent with your certificate request

  # A challenge password []:

  # An optional company name []:

 ;;移除client-key中的passphrase(可选)

  openssl rsa -in client-key.pem -out client-key.pem

  ;;签署客户端证书

  openssl ca -policy policy_anything -out client-cert.pem -config openssl.cnf -infiles client-req.pem

  # Sample output:

  # Using configuration from /usr/local/myssl/openssl.cnf

  # Enter PEM pass phrase:

  # Check that the request matches the signature

  # Signature ok

  # The Subjects Distinguished Name is as follows

  # countryName :PRINTABLE:'CN'

  # organizationName :PRINTABLE:'Centeur CA'

  # commonName :PRINTABLE:'MySQL user'

  # Certificate is to be certified until May 18 16:08:20 2006 GMT

  # (365 days)

  # Sign the certificate? [y/n]:y

  #

  #

  # 1 out of 1 certificate requests certified, commit? [y/n]y

  # Write out database with 1 new entries

  # Data Base Updated

  修改/etc/my.cnf,添加如下内容:

  [client]

  ssl-ca=/usr/local/myssl/cacert.pem

  ssl-cert=/usr/local/myssl/client-cert.pem

  ssl-key=/usr/local/myssl/client-key.pem

  [mysqld]

  ssl-ca=/usr/local/myssl/cacert.pem

  ssl-cert=/usr/local/myssl/server-cert.pem

  ssl-key=/usr/local/myssl/server-key.pem

  重启mysql服务

  /usr/local/etc/rc.d/mysql-server restart


上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    Mac OS X系统中安装MySQL教程
    基于MySQL数据库的论坛设计方案
    MySQL 5.0常见中文乱码问题的解决方法
    MySQL语法和常用函数入门手册
    MySQL5常用数据库操作SQL语句
    无法远程登入MySQL数据库的原因和解决办法
    MySQL数据库中的各种乱码及其解决方法
    MySQL的嵌套查询技巧
    asp.net2.0利用MySQL ODBC Driver-MyODBC 3
    access表导到mysql数据库新技巧
     
     
     
    最新文章
    普通文章 MySQL建立安全的SSL连接通道详解最新文章
    普通文章 Mac OS X系统中安装MySQL教程最新文章
    普通文章 fireworks 制作精美韩国图标最新文章
    普通文章 Photoshop打造超强奥迪R8最新文章
    普通文章 Photoshop鼠绘牡丹花教程最新文章
    普通文章 Excel高级筛选比较数据表的异同最新文章
    普通文章 Fireworks利用素材打造石头字效果最新文章
    普通文章 提高商业智能环境中的DB2查询性能最新文章
    普通文章 Windows 2008安装应用程序的解决最新文章
    普通文章 Photoshop绘制梦幻卡通效果彩虹最新文章
     
    热门文章
    推荐文章 Photoshop绘制逼真绚丽的金鱼
    推荐文章 CorelDraw 表格制作终极方案
     
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网