apache2 ssl 制作自签名证书

方法一:

1. 安装所需软件包:ssl-cert

2. 可以修改 /usr/sbin/make-ssl-cert 来调整时间,如果想生成 20 年有效期的证书,可以把里面的 3650 改成 7300(应该有两处)。

3. 使用 make-ssl-cert 命令生成证书(需要 root 权限):

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /path_to/cert.pem

中间会出现如下画面:

apache2 ssl 制作自签名证书_第1张图片

按照提示输入一个 Common Name(CN,保持和主机名相同),便能按照 /usr/share/ssl-cert/ssleay.cnf 这个默认模板生成一份证书。


方法二:

1. 其实方法一种的第二步其实是由下面这条命令组成的:

openssl req -new -x509 -days 3650 -nodes -out /path_to/cert.pem -keyout /path_to/cert.pem

各参数的意义:

  • openssl req -new:用 OpenSSL 套件生成新的证书请求
  • -x509:使用 X.509(PEM 编码的一种实现)
  • -days 3650:有效期是十年,可以自己改
  • -nodes:这个不是英文单词 “nodes”,而是 “No DES” 的意思,代表不用 DES 加密私钥,否则私钥默认是用 DES 加密的,每次启动 Apache 要输入密码
  • -out:证书(包括证书信息和公钥)的文件名
  • -keyout:私钥的文件名,如果此项和上一项同名的话,那么公钥和私钥是合并在同一文件里的(正如上面所贴的)

执行这个命令会让你输入一系列信息,比如 Common Name (CN)、公司名、地理位置、联系方式等,除了 CN 必须要和网站域名匹配之外,其他可以按照你的喜好自由填写。

证书生成好后,便是在 Apache 的配置文件中指定它了。具体的配置文件写法可以参考它自带的 /etc/apache2/sites-available/default-ssl 配置文件,主要是以下这几行要修改:

1
2
3
SSLEngine on
SSLCertificateFile    /path/to/cert .crt
SSLCertificateKeyFile /path/to/cert-key .key

并且如果按照上文,把公钥和私钥放在同一个文件里的话,那只要提供 SSLCertificateFile 就好了,后面的 KeyFile 不用填(保持它们的注释状态)。

注: Linux 是不分辨文件扩展名的,所以理论上上面的这些公钥 婆钥 私钥的扩展名都是可以随便起的,甚至不填也可以,但是为了方便自己弄清楚,我习惯上是这样命名的:只包含证书信息和公钥的文件扩展名为  crt ,同时包含了公钥和私钥的文件扩展名为  pem ,只包含私钥的文件扩展名为  key


效果:

下面我们来看一下刚才生成的证书

apache2 ssl 制作自签名证书_第2张图片

apache2 ssl 制作自签名证书_第3张图片


参考:

http://forum.ipb.tw/index.php?showtopic=21182

http://t.tt/9/



你可能感兴趣的:(apache2 ssl 制作自签名证书)