Linux Centos 怎么安装更新根证书实现支持https访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Centos 怎么安装更新根证书实现支持https访问相关的知识,希望对你有一定的参考价值。

1. 使用最小化安装盘安装系统,设置好网络环境配置信息
2. 安装所需工具包
# yum install openssh-server
# yum install wget
# yum update
# yum install setuptool
系统服务配置 # yum install ntsysv
安装网络配置 # yum install system-config-network-tui
防火墙配置 # yum install system-config-firewall
# yum -y install gcc gcc-c++ autoconf make
# yum -y install vim
关机备份 # shutdown -h now

二、安装openssl
切换到/tmp目录下(安装约定软件全放在此目录下)
cd /tmp
# tar zxvf openssl-1.0.0a.tar.gz
# cd openssl-1.0.0a
# ./config --prefix=/usr/local/openssl
# make && make install

三、创建证书
1.解压工具包
# tar zxvf ssl.ca-0.1.tar.gz
# cd ssl.ca-0.1
2.创建根证书
# ./new-root-ca.sh
No Root CA key round. Generating one
Generating RSA private key, 1024 bit long modulus
....++++++
...................++++++
e is 65537 (0x10001)
Enter pass phrase for ca.key:
Verifying - Enter pass phrase for ca.key:
Self-sign the root CA...
Enter pass phrase for ca.key:
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) [MY]:cn
State or Province Name (full name) [Perak]:cn
Locality Name (eg, city) [Sitiawan]:cn
Organization Name (eg, company) [My Directory Sdn Bhd]:cn
Organizational Unit Name (eg, section) [Certification Services Division]:cn
Common Name (eg, MD Root CA) []:172.16.17.132 //这里填站点域名,我是测试的就填ip
Email Address []:cn@gmail.com
这个过程要设置证书密码,要记住这个密码后面要用到,还有证书的其它信息:国家、地区、公司名称,域名,邮箱等,这些信息也要记住,与后面创建的证书主体信息一致
3.创建服务器证书
# ./new-server-cert.sh server
...
即创建一个名为server的服务器证书,主体信息与上面的一致就可,我这里就不贴出来了
签名刚才生成的服务器证书
# ./sign-server-cert.sh server
这个过程要输入根证书密码,后面都选Y即可
4.创建客户端证书,如果是单向认证,这一步可以跳过
# ./new-user-cert.sh client
...
这里要注意证书信息不能与其它证书完全一样,这里修改Email与服务器证书不一样就行
签名客户端证书
# ./sign-user-cert.sh client
转换成p12格式证书,这样才能在浏览器上安装
# ./p12.sh client
下载并安装client.p12证书
关机备份 # shutdown -h now
三、安装Apache及其所需依赖软件
# tar zxvf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
# ./configure --prefix=/usr/local/apache \\
--enable-ssl \\
--enable-rewrite \\
--enable-so \\
--with-ssl=/usr/local/openssl
# make && make install
可以启动httpd看看,启动命令是/usr/local/apache/bin/apachectl start,在浏览器中访问看看,显示 It workds!说明安装成功了

四、配置httpd
1.修改httpd.conf
#Include conf/extra/httpd-ssl.conf 把这句前面的#去掉
2.将前面生成的证书拷贝到conf/ssl 下
# mkdir ssl
# cd ssl
# cp /tmp/ssl.ca-0.1/ca.crt ./
# cp /tmp/ssl.ca-0.1/server.* ./
2.修改httpd-ssl.conf
SSLCertificateFile “/usr/local/apache/conf/ssl/server.crt”
SSLCertificateKeyFile “/usr/local/apache/conf/ssl/server.key”
下面是开启客户端认证,如果是单向认证就不用开启了
SSLCACertificateFile “/usr/local/apache/conf/ssl/ca.crt”
SSLVerifyClient require
SSLVerifyDepth 10

五、重启httpd
[root@localhost extra]# ../../bin/apachectl -t
Syntax OK
[root@localhost extra]# ../../bin/apachectl stop
[root@localhost extra]# ../../bin/apachectl -D SSL -k start

六、安装并配置mysql
1、安装Mysql
添加一个mysql标准组
# groupadd mysql
添加mysql用户并加到mysql组中
# useradd -g mysql mysql
# tar zxvf mysql-5.0.45.tar.gz
# cd mysql-5.0.45
# ./configure \\
--prefix=/usr/local/mysql/ \\
--with-extra-charsets=all
出现错误:
checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermcap... no
checking for tgetent in -ltinfo... no
checking for termcap functions library... configure: error: No curses/termcap library found
分析:缺少ncurses安装包
解决:
# yum install ncurses-devel
# make && make install
2、配置Mysql
创建MySQL数据库服务器的配置文件
# cp support-files/my-medium.cnf /etc/my.cnf
用mysql用户创建授权表,创建成功后,会在/usr/local/mysql目录下生成一个var目录
# /usr/local/mysql/bin/mysql_install_db --user=mysql
将文件的所有属性改为root用户
# chown -R root /usr/local/mysql
将数据目录的所有属性改为mysql用户
# chown -R mysql /usr/local/mysql/var
将组属性改为mysql组
# chgrp -R mysql /usr/local/mysql
启动数据库
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
查看3306端口是否开启
# netstat -tnl|grep 3306
简单的测试
# /usr/local/mysql/bin/mysqladmin version
查看所有mysql参数
# /usr/local/mysql/bin/mysqladmin variables
设置Mysql开机自启动
# cp /tmp/mysql-5.0.45/support-files/mysql.server /etc/rc.d/init.d/mysqld
# chown root.root /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --list mysqld
# chkconfig --levels 245 mysqld off
3、Mysql安全性设置
没有密码可以直接登录本机服务器
# /usr/local/mysql/bin/mysql -u root
查看mysql用户权限信息
mysql> select * from mysql.user;
删除非localhost的主机
mysql> DELETE FROM mysql.user WHERE Host=\'localhost\' AND User=\'\';
刷新授权表
mysql> FLUSH PRIVILEGES;
为root用户添加密码
mysql> SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\'yuwan1986\');
再次进入Mysql客户端
# /usr/local/mysql/bin/mysql -u root -h localhost -p
关闭MySQL数据库
# /usr/local/mysql/bin/mysqladmin -u root -p shutdown

七、 安装和配置php
# tar zxvf php-5.2.6.tar.gz
# cd /tmp/php-5.2.6
# ./configure \\
--prefix=/usr/local/php \\
--with-config-file-path=/usr/local/php/etc \\
--with-apxs2=/usr/local/apache/bin/apxs \\
--with-mysql=/usr/local/mysql/
# make && make install
出现依赖错误,直接使用yum安装即可
# yum -y install libxml2 libxml2-devel
简单配置PHP
cp ./php.ini-dist /usr/local/php/etc/php.ini
使用vi编辑apache配置文件
# vim /usr/local/apache/conf/httpd.conf
添加这一条代码
Addtype application/x-httpd-php .php .phtml
重启Apache
# /usr/local/apache/bin/apachectl restart
简单测试一下对PHP的支持

八、安装安装phpMyAdmin
1. 拷贝目录到指定位置并改名为phpmyadmin
# tar zxvf phpMyAdmin-3.3.4-all-languages.tar.gz
# cp -a phpMyAdmin-3.3.4-all-languages /usr/local/apache/htdocs/phpmyadmin
# cd /usr/local/apache/htdocs/phpmyadmin/
# cp config.sample.inc.php config.inc.php
2. 配置phpMyAdmin
# vim /usr/local/apache/htdocs/phpmyadmin/config.inc.php
将auth_type 改为http
$cfg[\'Servers\'][$i][\'auth_type\'] = \'http\';
最后设置开机启动项:
编辑开机启动文件# vim /etc/rc.d/rc.local添加
service mysqld start
/usr/local/apache/bin/apachectl -D SSL -k start
至此简单配置完成,可以安装到服务器上了
参考技术A 其实很简单就是一个命令:
mozroots --import --ask-remove

或者使用:
sudo update-ca-certificates

Linux Centos 怎么安装更新根证书实现支持https访问
参考技术B 你用的是什么web,apache还是nginx,说清楚点= =

linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改

原文地址:http://www.cnblogs.com/firtree/p/4028354.html

linux下利用openssl来实现证书的颁发(详细步骤)

1、首先需要安装openssl,一个开源的实现加解密和证书的专业系统。在centos下可以利用yum安装。

 

2、openssl的配置文件是openssl.cnf,我们一般就是用默认配置就可以。如果证书有特殊要求的话,可以修改配置适应需求。这样必须把相关的文件放到配置文件指定的目录下面。

 

3、首先需要利用openssl生成根证书,以后的服务器端证书或者客户端证书都用他来签发,可以建立多个根证书,就像对应不同的公司一样

   #生成根证书的私钥 

openssl genrsa -out /home/lengshan/ca.key

  #利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好

openssl req -new -key /home/lengshan/ca.key -out /home/lengshan/ca.csr

  #自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt

openssl x509 -req -days 3650 -in /home/lengshan/ca.csr -signkey /home/lengshan/ca.key -out /home/lengshan/ca.crt

  #为我们的证书建立第一个序列号,一般都是用4个字符,这个不影响之后的证书颁发等操作

echo FACE > /home/lengshan/serial

  #建立ca的证书库,不影响后面的操作,默认配置文件里也有存储的地方

touch /home/lengshan/index.txt

  #建立证书回收列表保存失效的证书

openssl ca -gencrl -out /home/lengshan/ca.crl -crldays 7

已上就完成了根证书的相关操作,下一步可以颁发证书了。

 

4、生成和签发服务器身份验证证书,注意证书是自签名的,浏览器会提示不受信任

  #建立服务器验证证书的私钥

openssl genrsa -out /home/lengshan/server.key

  #生成证书申请文件

openssl req -new -key /home/lengshan/server.key -out /home/lengshan/server.csr

  #利用根证书签发服务器身份验证证书

openssl ca -in /home/lengshan/server.csr -cert /home/lengshan/ca.crt -keyfile /home/lengshan/ca.key -out /home/lengshan/server.crt

至此,服务器端身份认证证书已经完成,可以利用证书和私钥生成pfx格式的证书给微软使用,命令如下:

openssl pkcs12 -export -clcerts -in /home/lengshan/server.crt -inkey /home/lengshan/server.key -out /home/lengshan/server.p12

 

5、签发客户端身份认证证书

  #生成私钥

openssl genrsa -des3 -out /home/lengshan/users/1/1.key 1024

  #生成证书请求文件

openssl req -new -key /home/lengshan/users/1/1.key -out /home/lengshan/users/1/1.csr

  #签发证书

openssl ca -in /home/lengshan/users/1/1.csr -cert /home/lengshan/ca.crt -keyfile /home/lengshan/users/1/1.crt

  #生成pfx格式

openssl pkcs12 -export -clcerts -in /home/lengshan/users/1/1.crt -inkey /home/lengshan/users/1/1.key -out /home/lengshan/users/1/1.p12

客户端证书完成,注意如果在web服务器上使用客户端证书,需要在web服务器上使用根证书对客户端进行验证,切记!

注释:1、证书之间的区别:

2、上述操作的过程中,根据错误提示创建相应的文件夹和文件,移动文件到指定的目录

3、

数字证书资料cer和pfx的区别

数字证书文件cer和pfx的区别

作为文件形式存在的证书一般有这几种格式:

  1.带有私钥的证书

  由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。

  2.二进制编码的证书

  证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。

  3.Base64编码的证书

证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。

 

由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。

 

  在pfx证书的导入过程中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。一般是不选中的,如果选中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全

  如果导入过程中没有选中这一项,做证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。

   如果要导出私钥(pfx),是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加 密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密

 

以上是关于Linux Centos 怎么安装更新根证书实现支持https访问的主要内容,如果未能解决你的问题,请参考以下文章

centos7安装根证书 (root certificates)

尽管安装了根证书,但握手失败(PayPal 升级 - g5 证书 - openssl)

如何将SSL证书设置成受信任的证书

linux 怎么安装p12证书

01 Linux安装(转)

怎么在windows上openssl颁发代码签名证书?