企业网站搭建记录

公司最近需要在搭建一套面向国外访问群体的网站,也是碰了一鼻子灰,主要是ssl证书申请,这里记录一下

1. 网站开发

这里就举一个简单例子,只有一个index.html

<!DOCTYPE html>
<html>
<body>
<h1>欢饮来到CSDN空间</h1>
</body>
</html>

2. 域名购买及ssl证书验证

域名购买可以在阿里云、腾讯云、namecheap、Let's Encrypt等操作。阿里云稍微简单些,按照官网说明一步一步走下去即可,这里主要说明namecheap的操作:

首先本地使用openssl工具生成自己的私钥(.key文件)和证书签名请求(.csr文件),根据namecheap官方文档验证的csr文件是2048位,所以在生成私钥时选择2048位。操作步骤如下:

* 生成私钥: openssl genrsa -des3 -out server.key 2048

* 生成证书签名请求:openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

> Country Name (2 letter code) [xx]: CN                  # 国家
> State or Province Name (full name)[]: SH               # 省份
> Locality Name(eg,city)[Default City]: SH               # 城市
> Organization Name(eg,company)[Default Company Ltd]:    # 组织, 随便填写eg:ethdao
> Common Name(eg,your name or your server's hostname)[]: # 域名, 这个必须和你购买的域名保持一致eg: ethdao.io 
> Email Address[]:                                       # 邮箱, 后面验证需要用到

> A chanllenge password[]:                # 密码
> An optional company name[]:             # 公司名称,可选

  这两部完了之后就可以在当前目录下存在两个文件,server.key和server.csr。如果嫌麻烦或者openssl工具没安装的,可以在网上生成,比如:https://decoder.link/csr_generator 和 https://www.chinassl.net/ssltools/generator-csr.html,填写完信息后直接点解生成即可产生这两个文件,然后拷贝这两个文件数据到本地。

* 映射域名

  将新买域名(eg: ethdao.io)使用A记录方式映射到服务器IP地址(部署网站的服务器)

* 激活证书

  这里激活方式有三种:邮件验证、http-验证、dns-验证,这里尝试了邮件验证和dns验证,都因为邮箱收不到验证信息,所以后面选在http-s验证方式,后面也是针对这种方式进行操作。

 > 选择http-base Validation,下载验证文件eg: 2E9A218011234567890BFA.txt
 > 将文件放到网站工程首页目录下.well-known/pki-validation/, 从浏览器可以直接访问到该文件url:http://ethdao.io/.well-known/pki-validation/2E9A218011234567890BFA.txt 即可。
 > (这里需要注意通过域名访问.well-known目录一致显示404错误,后面域名改成具体的ip地址后才访问,如果遇到同样的问题,可以试一下这种方式)
 > 验证通过后,即可完成证书激活,然后会选择收取证书文件的方式,这里选择的邮箱。点击完成,从邮箱下载证书
 > 证书文件包括:  
    __ethdao_io.ca-bundle 
    __ethdao_io.crt
    __ethdao_io.p7

3 合并证书并部署

要使用这书还需要讲.ca-bundle和.crt文件合并,这里使用命令cat *.ca-bundle >> *.crt, 然后将.crt文件和.key文件部署到服务器上即可,具体方式可以自行百度,网上资料也很多。

4. 注意事项

若在部署完后重启nginx时出现如下错误:

nginx: [emerg] PEM_read_bio_X509_AUX("/root/ssl/__ethdao.crt") failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line),

那是因为证书文件合并时未换行导致的,打开.crt文件

将
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
改为:

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----

5. 文件说明

> .key是私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
> .csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
> .crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

6. 另附自签名证书制作

{
1. 生成服务端私钥
  openssl genrsa -out server.key 1024
2. 生成服务端公钥
  openssl rsa -in server.key -pubout -out server.pem
  
3. 生成客户端私钥
  openssl genrsa -out client.key 1024
4. 生成客户端公钥
  openssl rsa -in client.key -pubout -out client.pem
  
5. 生成CA私钥
   openssl genrsa -out ca.key 1024
6. # X.509 Certificate Signing Request (CSR) Management.
   openssl req -new -key ca.key -out ca.csr
7. # X.509 Certificate Data Management.
   openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
   
8. 创建服务端csr文件
	openssl req -new -key server.key -out server.csr
9. 向自己CA机构申请证书,签名过程需要CA的证书和私钥参与,最终颁发一个带CA的证书
	openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
10. 导出pfx文件(该文件可用于https服务程序)
    openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
11. 创建客户端csr文件
	openssl req -new -key client.key -out client.csr
12. 颁发客户单CA证书
	openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt
13. 导出pfx文件(该文件可用于https服务程序)
	openssl pkcs12 -export -out client.pfx -inkey client.key -in client.crt
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值