如何为 Apache 生成 SSL 密钥、CSR 和自签名证书
如果要将网站从 HTTP 转换为 HTTPS,则需要从 Verisign 或 Thawte 等有效组织获取 SSL 证书。您还可以生成自签名 SSL 证书以进行测试。
在本文中,让我们了解一下如何使用 mod_ssl 生成可在 Apache 服务器上使用的私钥文件(server.key)、证书签名请求文件(server.csr)和 webserver 证书文件(server.crt)。
密钥、CSR 和 CRT 文件命名约定
我通常喜欢使用将使用此证书的 HTTPS URL 的域名来命名文件。这使得识别和维护更容易。
- 我使用 www.hgst.com.cn.key 而不是 server.key
- 我使用 www.hgst.com.cn.csr 而不是 server.csr
- 我使用 www.hgst.com.cn.crt 而不是 server.crt
1.在运行Apache的服务器上生成私钥+ mod_ssl
首先,使用如下所示的 openssl 命令在运行 Apache webserver 的 Linux 服务器上生成一个私钥。
# openssl genrsa -des3 -out www.hgst.com.cn.key 1024
Generating RSA private key, 1024 bit long modulus
.......................................++++++
...................................................++++++
e is 73547 (0x01001)
Enter pass phrase for www.hgst.com.cn.key:
Verifying - Enter pass phrase for www.hgst.com.cn.key:
# ls -ltr www.hgst.*
-rw-r--r-- 1 root root 963 Jun 13 20:26 www.hgst.com.cn.key
生成的私钥如下所示。
# cat www.hgst.com.cn.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,485B3C6371C9916E
ymehJu/RowzrclMcixAyxdbfzQphfUAk9oK9kK2
jadfoiyqthakLKNqw9z1ModfdfPyqeHevUm26no
AJKIETHKJADFS2BGb0n61/Ksk8isp7evLM4+QY
KAQETKjdiahteksMJOjXLq+vf5Ra299fZPON7yr
-----END RSA PRIVATE KEY-----
2. 生成证书签名请求 (CSR)
使用上面生成的密钥,您应该使用 openssl 生成证书请求文件 (csr),如下所示。
# openssl req -new -key www.hgst.com.cn.key -out www.hgst.com.cn.csr
Enter pass phrase for www.hgst.com.cn.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) [GB]:US
State or Province Name (full name) [Berkshire]:tiamo
Locality Name (eg, city) [Newbury]:tiamo
Organization Name (eg, company) [My Company Ltd]:tiamo
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []: hgst
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
# ls -ltr www.thegeekstuff.*
-rw-r--r-- 1 root root 963 Jun 13 20:26 www.thegeekstuff.com.key
-rw-r--r-- 1 root root 664 Jun 13 20:35 www.thegeekstuff.com.csr
3. 生成自签名 SSL 证书
出于测试目的,您可以使用如下所示的 openssl 命令生成有效期为 1 年的自签名 SSL 证书。
# openssl x509 -req -days 365 -in www.hgst.com.cn.crt -signkey www.hgst.com.cn.key -out www.hgst.com.cn.crt
Signature ok
subject=/C=US/ST=California/L=Los Angeles/O=thegeekstuff/OU=IT/CN=www.hgst.com.cn
Getting Private key
Enter pass phrase for www.hgst.com.cn.key:
# ls -l www.hgst*
-rw-r--r-- 1 root root 963 Jun 13 20:26 www.hgst.com.cn.key
-rw-r--r-- 1 root root 664 Jun 13 20:35 www.hgst.com.cn.csr
-rw-r--r-- 1 root root 879 Jun 13 20:43 www.hgst.com.cn.crt
# cat www.thegeekstuff.com.crt
-----BEGIN CERTIFICATE-----
haidfshoaihsdfAKDJFAISHTEIHkjsdasddff9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----
大多数Linux、Unix系统包括Ubuntu、Debian、CentOS、Fedora和Red Hat都可以使用这种方法生成Apache SSL Key、CSR和CRT文件。
4. 获取有效的试用 SSL 证书(可选)
您也可以从 thawte 生成有效的试用 SSL 证书,而不是自己签名。即在花钱购买证书之前,您还可以从 Thawte 获得有效的全功能 21 天试用 SSL 证书。一旦此有效证书生效,您可以决定从 Thawte 或任何其他 SSL 签名组织购买。
此步骤是可选的,并不是真正必需的。出于测试目的,您始终可以使用从上述步骤生成的自签名证书。
转到Thwate 试用证书请求页面并执行以下操作:
- 在“选择您的试用证书”下选择“SSL Web 服务器证书(所有服务器)”。
- 不要选中“配置证书”下的 PKCS #7 复选框
- 将您在上面生成的 *.csr 文件复制/粘贴到“证书签名请求 (CSR)”下的文本框中
- 单击底部的下一步,这将为您提供 21 天的免费试用证书。
将试用证书复制/粘贴到 www.hgst.com.cn 文件,如下所示。
# cat www.hgst.com.cn.crt
-----BEGIN CERTIFICATE-----
haidfshosdfsdffAKDJFAISHTEIHkjasdjadf9w0BAQUFADCB
kjadfijadfhWQIOUQERUNcMNasdkjfakljasdBgEFBQcDAQ
kjdghkjhfortoieriqqeurNZXCVMNCMN.MCNaGF3dGUuY29
-----END CERTIFICATE-----
- 点赞
- 收藏
- 关注作者
评论(0)