Linux下导入SSL证书(配置用于Apache)

简介:

三、部署证书

如果使用双向认证,就会有三个私钥和三个证书。分别是 ca.key, ca.crt, server.key, server.crt, client.key, client.crt ,以及给浏览器的 client.pfx 。
如果使用有 CA 证书的单向认证,证书和私钥就是 ca.key, ca.crt, server.key, server.crt 。
如果使用无 CA 证书的单向认证,证书和私钥就是 server.key, server.crt 。

1、修改httpd.conf文件

**RPM安装的情况下,不需要修改httpd.conf文件,因为在httpd.conf文件中默认添加了 include conf.d/*.conf。而在rpm安装时,conf.d文件夹中已含有ssl.conf文件。所以只要修改ssl.conf文件就可以了。**

**RPM安装的Apahce时,可能一开始没有mod-ssl,需要安装。方法为:yum install mod_ssl 或者用rpm包安装,需要mod_ssl arp_util distcache httpd postgresql-libs等伊来关系。**

需要修改时可在httpd.conf文件中加上include conf.d/ssl.conf(用于ssl模块使用的conf文件的路径即可)。

2、修改ssl.conf文件

[root@localhost conf.d]#cp -p ssl.conf ssl.conf.bk

[root@localhost conf.d]#vi ssl.conf

---------------------------------------

Listen 443 //可以改成其他端口
SSLPassPhraseDialog builtin //每次重启Apache时需要输入密码
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLMutex default
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.crt/server.key

SSLCACertificateFile /etc/httpd/conf/ssl.crt/ca.crt //双向时使用
SSLVerifyClient require //双向时使用,强制客户必须持有SSL证书请求
SSLVerifyDepth 10 //双向时使用
</VirtualHost>

---------------------------------------

可以按照如下方式重新导入KEY文件,则可以不用每次重启Apache都需要输入KEY文件密码

[root@localhost ssl.crt]#openssl rsa -in server.key -out server2.key
[root@localhost ssl.crt]#mv server.key server.key.originalkey
[root@localhost ssl.crt]#mv server2.key server.key

3、重启Apache

[root@localhost ssl.crt]#service httpd restart

如果端口号为非默认的443(假如为446),则可能会会出现如下错误:

Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:446
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:446
no listening sockets available, shutting down
Unable to open logs
[FAILED]

则可以使用semanagement工具来添加Apache的侦听端口

[root@localhost ssl.crt]#semanage port -l|grep http
[root@localhost ssl.crt]#semanage port -a -t http_port_t -p tcp 446

再次重启Apache应该就可以使用了。

4、开启防火墙端口

[root@localhost conf]#cd /etc/sysconfig/
[root@localhost conf]#vi iptables
-------------------------------------
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 446 -j ACCEPT
-------------------------------------
[root@localhost sysconfig]# /etc/init.d/iptables restart

配置完之后,如果客户端没有安装证书,则不能用446端口访问服务器了。

5、客户端安装证书

IE为例:
【工具】--》【internet选项】--》【内容】--》【证书】--》【受信任的根证书颁发机构】--》【导入】,导入ca.crt。
(双向认证时)【工具】--》【internet选项】--》【内容】--》【证书】--》【个人】--》【导入】,导入client.p12,需要输入该文件的密码
可使用https访问网站

*如果使用IE访问时有问题而用其他浏览器比如火狐,谷歌时没有问题,请对IE做以下设置:
【工具】--》【internet选项】--》【高级】--》安全
ssl和tls使用最低版本。比如SSL 勾选【使用SSL 2.0】,其他的ssl版本不勾选
tls勾选【使用TLS 1.0】,其他版本的tsl不勾选
*其他浏览器操作类似,有问题可以百度搜索。






     本文转自yzy121403725 51CTO博客,原文链接:http://blog.51cto.com/lookingdream/1870099,如需转载请自行联系原作者


相关文章
|
15天前
|
安全 Ubuntu Java
Linux配置使用篇
Linux配置使用篇
|
27天前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
113 0
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
38 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
30 1
|
14天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
1天前
|
Ubuntu 网络协议 Linux
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
Linux(20) Ubuntu 20.04 网络接口自动切换路由配置
10 0
|
1天前
|
Linux
Linux(9)Debain EC25 quectel-CM usbnet0开机自动联网配置
Linux(9)Debain EC25 quectel-CM usbnet0开机自动联网配置
5 0
|
1天前
|
安全 应用服务中间件 网络安全
SSL原理、生成SSL密钥对、Nginx配置SSL
现在,你的Nginx虚拟主机应该已经配置了SSL,可以通过HTTPS安全访问。确保在生产环境中使用有效的SSL证书来保护通信的安全性。
7 0
|
4天前
|
Linux 网络安全 开发工具
【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透
【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透
|
4天前
|
缓存 安全 Ubuntu
Linux配置代理上网
如何配置Linux代理
12 1