申请SSL证书通常通过认证机构(CA),如Let’s Encrypt或DigiCert,提交CSR文件并
验证域名所有权。
如何给域名生成SSL证书
使用自签名证书
1、生成私钥:
打开终端,进入目标目录。
运行以下命令生成RSA算法的私钥文件:
“`bash
openssl genrsa -des3 -out server.pass.key 2048
“`
这将生成一个名为server.pass.key
的加密私钥文件。
2、去除私钥中的密码:
为了方便使用,可以去除私钥文件中的密码:
“`bash
openssl rsa -in server.pass.key -out server.key
“`
这将生成一个无密码保护的私钥文件server.key
。
3、生成证书签名请求(CSR):
运行以下命令生成证书签名请求文件server.csr
:
“`bash
openssl req -new -key server.key -out server.csr
“`
在过程中,系统会提示输入一些信息,如国家代码、省份、城市等,以及Common Name(通常是需要HTTPS访问的域名)。
4、使用自签署的CA证书签署CSR:
首先生成根CA证书和密钥:
“`bash
openssl genrsa -des3 -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -out rootCA.pem
“`
使用根CA证书签署CSR,生成最终的服务器证书:
“`bash
openssl x509 -req -in server.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 500 -sha256
“`
5、配置Web服务器:
将生成的server.crt
和server.key
文件配置到Web服务器(如Nginx或Apache)中,启用HTTPS。
使用Let’s Encrypt免费证书
1、安装Certbot工具:
打开终端,运行以下命令安装Certbot:
“`bash
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt install certbot
“`
2、验证域名所有权:
Let’s Encrypt要求验证你对域名的所有权,可以通过添加DNS记录或使用文件验证方式完成此操作。
3、申请证书:
运行以下命令申请证书:
“`bash
sudo certbot certonly –webroot -w /var/www/example -d example.com -d www.example.com –non-interactive –agree-tos –email admin@example.com
“`
这里的/var/www/example
是你的网站根目录,example.com
和www.example.com
是你要申请证书的域名。
4、安装证书:
Certbot会自动将证书安装到你的Web服务器配置中,如果你使用的是Nginx,可以通过编辑Nginx配置文件来手动安装证书。
5、自动续期:
Certbot支持自动续期功能,你可以使用systemd
定时任务来定期更新证书:
“`bash
sudo systemctl enable certbot.timer
“`
使用商业CA机构颁发的证书
1、选择CA机构:
选择一个受信任的商业CA机构,如DigiCert、GlobalSign、Symantec等。
2、生成CSR:
与自签名证书类似,生成CSR文件:
“`bash
openssl req -new -key server.key -out server.csr
“`
3、提交CSR:
将生成的CSR文件提交到CA机构的在线平台或通过其他方式提交。
4、验证域名所有权:
CA机构会要求你验证对域名的所有权,通常通过添加DNS记录或上传文件到网站根目录完成。
5、安装证书:
CA机构审核通过后,会颁发证书文件,将证书文件(通常是.crt
格式)和私钥文件(.key
格式)安装到你的Web服务器中。
相关问题与解答
1、Q1: SSL证书的有效期一般是多久?
A1: SSL证书的有效期一般为1年,对于Let’s Encrypt等免费证书,有效期为90天,但支持自动续期。
2、Q2: 如何在Web服务器中配置SSL证书?
A2: 配置方法因Web服务器而异,以Nginx为例,编辑Nginx配置文件(通常位于/etc/nginx/sites-available/
目录下),添加以下内容:
“`nginx
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
…
}
“`
然后重启Nginx服务使配置生效。
小伙伴们,上文介绍了“如何给域名生成SSL证书 域名申请SSL证书方法”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。