设为首页 收藏本站
查看: 828|回复: 0

[经验分享] 架设CA服务器实现https通信,web服务器使用CA自签证书与https通信

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-20 10:51:26 | 显示全部楼层 |阅读模式
教程目标:web服务器使用CA自签证书与https通信



====================================================
准备:

系统环境:CentOS 6.6 X64 Desktop安装,附加开发工具包的安装


本机作为签证机构,ip地址为 192.168.1.101
本机自身开启http服务,
本教程示例为本机既作为发证机构,又作为web服务器,自己给自己签证。

===================================================
开始:在CA 端操作

//签证机构  iP 192.168.1.101

//安装mod_ssl
# yum install openssl mod_ssl -y

# cd /etc/pki/CA/

//生成密钥对 cakey.pem
# (umask 077;openssl genrsa -out private/cakey.pem 2048)

//查看生成的公钥
# openssl rsa -in private/cakey.pem -text



//开始申请CA机构的根证书,10年x509类型
# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Zhejiang
Locality Name (eg, city) [Default City]:Hangzhou
Organization Name (eg, company) [Default Company Ltd]://这里填写你的公司英文名称
Organizational Unit Name (eg, section) []://这里填写你的部门
Common Name (eg, your name or your server's hostname) []:ca.iyunv.com   //这里填写CA机构根的域名
Email Address []:linux_lcl@163.com  //填写你的联系邮箱

创建需要的文件
# touch index.txt serial crlnumber
# echo 01 > serial

CA根机构,准备结束,产生CA根证书cacert.pem


==================================================
下面:在web服务端操作
比如我是一个web服务器的网站,下面我要生成自己的私钥key与csr证书请求,然后把这些信息发给CA签证机构帮我签证,签好了再发给我。

下面就是web服务器端生成自己的私钥与证书请求,因为本教程是自己开启web服务,自己又作为CA签证机构,那么,下面的操作还是在本机上面操作。

//生成私钥 1024的长度
cd /etc/httpd/
# mkdir ssl
# cd ssl/
# (umask 077;openssl genrsa  -out httpd.key 1024 )

#  openssl req -new -key httpd.key -out httpd.csr

Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Zhejiang
Locality Name (eg, city) [Default City]:Hangzhou
Organization Name (eg, company) [Default Company Ltd]://这里填写你的公司英文名称
Organizational Unit Name (eg, section) []: //这里填写你的部门  
Common Name (eg, your name or your server's hostname) []:www.iyunv.com   //注意:填写你的web服务器的域名
Email Address []:linux_lcl@163.com         
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:    //回车
An optional company name []:  //回车


// OK,上面操作生成了 私钥httpd.key和签证请求httpd.csr两个文件了
// 如果中途敲错了,把生成的csr删除,再来一次,就可以了
========================================================

// 到现在为止,你的CA发证机构已经准备就绪了,web服务端的私钥key和证书请求文件csr也创建好了
// 那么,开始签证吧
// 把web端的csr文件复制给CA端

cd /etc/pki/CA/
openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.crt     

// OK 生成crt证书文件!



***********************************************************************
【如果报错】
openssl TXT_DB error number 2 failed to update database
  产生的原因是:
  This thing happens when certificates share common data. You cannot have two certificates that look otherwise the same.

  方法一:
  删除demoCA下的index.txt,并再touch一个
  rm    index.txt
   touch index.txt
  

    方法二:  
    修改demoCA下 index.txt.attr
  将  unique_subject = yes
  改为 unique_subject = no

  方法三:
  将 common name设置成不同的
====================================================
下面在web服务端操作:

看看有没有安装ssl模块
# grep mod_ssl /etc/httpd/conf.d/*.conf

安装mod_ssl
# yum install mod_ssl
vim /etc/httpd/conf.d/ssl.conf


DocumentRoot "/var/www/html" // 去除注释
ServerName www.iyunv.com:443  // 去除注释

SSLCertificateFile /etc/httpd/ssl/httpd.crt  //指定CA签给我的证书的crt证书的路径
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key  //指定本机私钥的路径

保存退出



检查语法
# httpd -t
# service httpd restart
看看有没有443 端口
# netstat -tnlp  或者 # ss -tnl
// 那么OK ,443端口已被监听,可以使用https服务了

打开iptables的443端口

iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

service iptables save

=================================================
访问测试:

安装CA根证书cacert.pem到浏览器端

打开浏览器设置,找到证书导入,安装证书到可信任


如果你没有DNS服务器, 把www.iyunv.com 指向这个web服务器的IP

修改浏览器端主机的host文件,添加
192.168.1.101 www.iyunv.com

微软 C:\Windows\System32\drivers\etc
Linux    vim /etc/hosts
MAC OS    vi /etc/hosts

访问测试  https://www.iyunv.com/     OK!



IE浏览器    接受此证书,未出现不信任警告
遨游浏览器    接受此证书,未出现不信任警告
UC浏览器    接受此证书,未出现不信任警告
===================================================
到此,https的基础服务已经可用。








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-101519-1-1.html 上篇帖子: 基于basic认证机制配置httpd服务器拥有用户访问控制功能 下篇帖子: Apache简单配置实例 web服务器 签证 通信
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表