如何为 Apache 生成 SSL 密钥、CSR 和自签名证书

举报
Tiamo_T 发表于 2021/12/21 08:07:01 2021/12/21
【摘要】 如果要将网站从 HTTP 转换为 HTTPS,则需要从 Verisign 或 Thawte 等有效组织获取 SSL 证书。您还可以生成自签名 SSL 证书以进行测试。

如果要将网站从 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-----
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。