CentOS下生成自签名的证书的方法详解

1. 生成自签名的证书

通常要配置 https 的服务器,都需要一个由正式的 CA 机构认证的 X509 证书。当客户端连接 https 服务器时,会通过 CA 的共钥来检查这个证书的正确性。但要获得 CA 的证书是一件很麻烦的事情,而且还要花费一定的费用。因此通常一些小的机构会是使用自签名的证书。也就是自己做 CA,给自己的服务器证书签名。

这个过程有两个主要的步骤,首先是生成自己的 CA 证书,然后再生成各个服务器的证书并为它们签名。 我是用 OpenSSL 来生成自签名证书的。

第一步是制作 CA 的证书:

openssl genrsa -des3 -out my-ca.key 2048

openssl req -new -x509 -days 3650 -key my-ca.key -out my-ca.crt

这会生成 my-ca.key 和 my-ca.crt 文件,前者存放着使用 my-ca.crt 制作签名时必须的密钥,应当妥善保管。而后者是可以公开的。上面的命令为 my-ca.key 设定的有效期为 10 年。

用命令

openssl x509 -in my-ca.crt -text -noout

可以查看 my-ca.crt 文件的内容。

有了 CA 证书之后,就可以为自己的服务器生成证书了:

openssl genrsa -des3 -out mars-server.key 1024

openssl req -new -key mars-server.key -out mars-server.csr

openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt -CAkey my-ca.key -CAcreateserial -days 3650

前两个命令会生成 key、csr 文件,最后一个命令则通过 my-ca.crt 为 mars-server.csr 制作了 x509 的签名证书。

需要注意的是,在执行上述第二个命令时,Common Name 选项应当输入的是服务器的域名,否则在用户通过 https 协议访问时每次都会有额外的提示信息。

用命令

openssl x509 -in mars-server.crt -text -noout

可以查看 mars-server.crt 文件的内容。

2. 配置 Apache 服务器

首先,创建 /etc/apache2/ssl 目录,将刚刚制作的 my-ca.crt、mars-server.key 和 mars-server.crt 文件拷贝到这个目录中。

接着执行命令

a2emod ssl

激活 Apache 的 SSL 模块,然后在 /etc/apache2/sites-enable/ 中添加虚拟主机,这个过程与添加普通的虚拟主机类似,不同点在于该主机的端口应为 443。配置如下:

NameVirtualHost *:443

<VirtualHost *:443>

ServerName localhost

DocumentRoot /var/www

SSLEngine On

SSLCipherSuite HIGH:MEDIUM

SSLProtocol all -SSLv2

SSLCertificateFile /etc/apache2/ssl/mars-server.crt

SSLCertificateKeyFile /etc/apache2/ssl/mars-server.key

SSLCACertificateFile /etc/apache2/ssl/my-ca.crt

<Directory /var/www>

Order deny,allow

Allow from localhost

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerName localhost

DocumentRoot /var/www

<Directory /var/www>    Order deny,allow

Allow from localhost

</Directory>

</VirtualHost>

以上配置保证了用户在访问 443 和 80 端口时可以看到相同的内容,而仅仅是使用的协议不同。修改好配置后,便可以重启 Apache 服务器,这时需要输入 mars-server.key 的密码。用浏览器访问

https://localhost/

这时应当看到一个弹出对话框,让你确认是否信任该站点的证书,选择信任后,便可以查看该站点的内容了。

由于大多数 Apache 服务器都是在服务器启动时自动启动,为了避免在启动 Apache 时输入密码,可以用以下命令生成不加密的 mars-server.key 文件:

openssl rsa -in mars-server.key -out mars-server.key.insecure

用新生成的 mars-server.key.insecure 代替原有的 key 文件即可。

(0)

相关推荐

  • CentOS下对SSD寿命的检查和健康判断详解

    整个网上只有 intel 的 SSD 查看硬盘寿命的资料,象我们这种穷人,只能使用的起 Crucial 和 OCZ 的用户来讲是太不公平了.象我要透过 RAID 卡就真没法子看其它商家的 SSD 的寿 ...

  • linux下防DDOS攻击软件及使用方法详解

    互联网如同现实社会一样充满钩心斗角,网站被DDOS也成为站长最头疼的事。在没有硬防的情况下,寻找软件代替是最直接的方法,比如用 iptables,但是iptables不能在自动屏蔽,只能手动屏蔽。 一 ...

  • Win7删除IE浏览器证书的方法详解

    由于在重装win7之前办过网银证书,重装后就会导入一个错误的证书,那么要如何删除这个错误的证书,就是大家比较头痛的地方吧。win7删除IE浏览器证书有什么方法呢?下面就来给你们介绍一下解决方法。 一般 ...

  • Linux下针对路由功能配置iptables的方法详解

    作为公司上网的路由器需要实现的功能有nat地址转换.dhcp.dns缓存.流量控制.应用程序控制,nat地址转换通过iptables可以直 接实现,dhcp服务需要安装dhcpd,dns缓存功能需要使 ...

  • Ghost win7系统下百度浏览器无法卸载及卸载方法详解

    百度浏览器卸载方法: 1.首先进入ghost win7系统电脑的控制面板,然后找到"程序和功能"; 2.进入程序和功能操作界面之后,找到"百度浏览器"并鼠标右击 ...

  • CentOS中禁止用户ssh和sftp登陆的详解

    CentOS中禁止用户ssh和sftp登陆的详解 在linux中出于安全的需要,我们会禁止某些用户SSH登陆系统进行操作.我这里以centos操作系统为例记录下如何进行处理. 1.打开sshd的配置文 ...

  • 途牛如何下订单?手机途牛旅行下单方法详解

    途牛如何下订单?途牛下订单方法详解。途牛是一款提供旅游度假产品在线展示和预定服务的旅游软件,具有线路查询、线路搜索、线路收藏、行程介绍、客户点评、订单查询、会员管理等功能。那么如何下订单呢?下面跟随小 ...

  • win7下删除IE浏览器中证书的方法

    由于重装Win7系统之前办过网银证书,之后导入了错误的证书,这里说下如何删除证书。 一般的证书在IE浏览器属性的“内容”->“证书”那就可以删除,但是我的在这里没有显示,因此找了别的方法,分享给 ...

  • win7系统下删除IE浏览器中证书的方法

    由于siyue重装Win7系统之前办过网银证书,之后导入了错误的证书,这里说下如何删除证书。 一般的证书在IE浏览器属性的“内容”->“证书”那就可以删除,但是我的在这里没有显示,因此找了别的方 ...