分类 知识百科 下的文章

自建HTTPS证书通常涉及到创建一个自签名的SSL/TLS证书,这个过程可以通过OpenSSL工具来完成。以下是一个基本的步骤来创建自签名的HTTPS证书:

1. 生成CA私钥

首先,你需要生成一个CA(Certificate Authority)的私钥。这个私钥将用于签署服务器证书。使用以下命令生成一个2048位的RSA私钥:

openssl genrsa -des3 -out ca.key 2048

2. 生成CA自签名证书

使用上一步生成的私钥,创建一个自签名的CA证书。这个证书将作为信任链的根证书:

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

3. 生成服务器私钥和证书申请文件(CSR)

为你的服务器生成一个私钥和证书申请文件(CSR)。这个CSR将被发送到CA进行签名:

openssl req -newkey rsa:2048 -nodes -keyout server.key -out server.csr

4. 使用CA根证书签名服务器证书

使用CA的私钥对服务器的CSR进行签名,生成服务器证书:

openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

5. 配置服务器使用自签名证书

将生成的服务器证书和私钥配置到你的Web服务器中。例如,如果你使用的是Nginx,配置文件可能如下:

server {
    listen       443 ssl;
    server_name  example.com;

    ssl_certificate      /path/to/server.crt;
    ssl_certificate_key  /path/to/server.key;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
}

6. 信任自签名证书

由于自签名证书不是由受信任的CA颁发的,你需要将CA证书添加到客户端的信任存储中。在大多数操作系统中,这意味着将CA证书添加到浏览器或操作系统的信任存储中。

以下是一些购买HTTPS证书的选项和价格信息:

阿里云SSL证书价格

  • DV(域名型)

    • Digicert(原symantec)通配符证书:1700元/年
    • Rapid通配符证书:1256.30元/年
    • Globalsign通配符证书:5890.50元/年
    • Wosign通配符证书:2244.00元/年
    • vTrus通配符证书:2100.00元/年
  • OV(企业型)

    • Globalsign通配符证书:9133.60元/年
    • Geotrust通配符证书:4674.60元/年
    • Digicert(原symantec)通配符证书:28000.00元/年
    • CFCA通配符证书:10500.00元/年
    • vTrus通配符证书:8400.00元/年

腾讯云SSL证书价格

  • DNSPod

    • 单个域名DV证书:560元/年
    • 多个域名DV证书:960元/年(默认支持3个域名,附加域名单个200元)
    • 泛域名DV通配符证书:2260元/年
    • 单个域名EV证书:3600元/年
    • 多个域名EV证书:9600元/年(默认支持3个域名,附加域名单个1600元)
    • 单个域名OV证书:2600元/年
    • 多个域名OV证书:5560元/年(默认支持3个域名,附加域名单个1000元)
  • SecureSite

    • 单个域名OV证书:5600元/年
    • 单个域名OV Pro证书:8992元/年
    • 单个域名EV证书:8992元/年
    • 单个域名EV Pro证书:16800元/年

HTTPS证书的格式有多种,常见的包括PEM、DER、CRT、CER、KEY、CSR、PFX和JKS等。以下是这些格式的详细说明:

PEM(Privacy Enhanced Mail)

PEM格式是一种Base64编码的文本格式,通常用于存储证书和私钥。PEM格式的证书文件通常以-----BEGIN CERTIFICATE-----开头,以-----END CERTIFICATE-----结尾。PEM格式的私钥文件通常以-----BEGIN RSA PRIVATE KEY-----开头,以-----END RSA PRIVATE KEY-----结尾。

DER(Distinguished Encoding Rules)

DER格式是一种二进制格式,通常用于存储证书和私钥。DER格式的证书文件通常以.der.cer为扩展名。

CRT(Certificate)

CRT格式是一种二进制格式或文本格式,通常用于存储证书。CRT格式的证书文件通常以.crt为扩展名。

CER(Certificate)

CER格式是一种二进制格式或文本格式,通常用于存储证书。CER格式的证书文件通常以.cer为扩展名。

KEY(Private Key)

KEY格式是一种PEM格式的私钥文件,通常以.key为扩展名。

CSR(Certificate Signing Request)

CSR格式是一种包含证书持有人信息的文件,通常用于向证书颁发机构(CA)申请证书。CSR格式的文件通常以.csr为扩展名。

PFX(Personal Information Exchange)

PFX格式是一种二进制格式,通常用于存储包含证书和私钥的文件。PFX格式的文件通常以.pfx.p12为扩展名。

JKS(Java KeyStore)

JKS格式是一种Java环境专用的证书格式,通常用于存储Java应用程序的证书和私钥。

在选择HTTPS证书格式时,需要考虑服务器类型、应用程序需求以及证书颁发机构的要求。例如,Apache和Nginx服务器通常使用PEM格式的证书,而Windows Server中的IIS服务通常使用PFX格式的证书。

HTTPS(Hypertext Transfer Protocol Secure)认证流程涉及到多个步骤,包括证书的生成、验证和数据传输的加密。以下是HTTPS认证的详细流程:

1. 服务器生成密钥对

服务器首先生成一个私钥和一个公钥。私钥由服务器保管,不对外公开,而公钥则用于与客户端进行通信。

2. 服务器向认证机构(CA)申请证书

服务器将自己的公钥和相关的域名信息发送给认证机构(CA),申请数字证书。

3. 认证机构验证服务器信息

认证机构(CA)会对服务器提交的信息进行验证,确保服务器的合法性和域名的所有权。

4. 认证机构颁发证书

如果验证通过,认证机构(CA)会使用自己的私钥对服务器的公钥和相关信息进行签名,生成数字证书。

5. 服务器安装证书

服务器收到认证机构(CA)颁发的证书后,将其安装到服务器上。

6. 客户端请求服务器

客户端(如浏览器)向服务器发起HTTPS请求。

7. 服务器发送证书

服务器将自己的数字证书发送给客户端。

8. 客户端验证证书

客户端接收到服务器的证书后,会进行一系列的验证,包括:

  • 检查证书是否由受信任的CA颁发。
  • 检查证书是否在有效期内。
  • 检查证书的域名是否与请求的域名匹配。
  • 检查证书是否被吊销。

9. 客户端生成对称密钥

如果证书验证通过,客户端会生成一个对称密钥,用于后续的数据传输加密。

10. 客户端加密对称密钥

客户端使用服务器的公钥对生成的对称密钥进行加密,并将加密后的密钥发送给服务器。

11. 服务器解密对称密钥

服务器接收到客户端发送的加密后的对称密钥后,使用自己的私钥进行解密,得到对称密钥。

12. 数据传输加密

客户端和服务器现在都拥有了相同的对称密钥,它们将使用这个对称密钥对后续的数据传输进行加密和解密。

通过这个流程,HTTPS确保了数据传输的安全性和服务器的身份认证。在整个过程中,非对称加密用于密钥交换,而对称加密用于数据传输,这样可以在保证安全的同时提高传输效率。

根据您提供的请求,以下是为Emby安装SSL证书的步骤:

1. 准备SSL证书

首先,您需要拥有一个SSL证书。您可以选择从免费服务如Let's Encrypt申请,或者从其他CA购买。Emby需要PKCS #12格式的证书,所以如果您的证书是PEM格式,需要将其转换为PKCS #12格式。

2. 转换证书格式(如果需要)

如果您的证书是PEM格式,可以使用在线工具如SSL Shopper的SSL Converter将PEM格式的证书和私钥转换为PKCS #12格式的.pfx文件。

3. 上传证书到Emby服务器

将转换后的PKCS #12证书(.pfx文件)上传到运行Emby的服务器上。您可以使用SFTP或其他文件传输方法将证书放置到Emby服务器的适当目录中,例如/config/embycerts目录。

4. 在Emby中配置SSL证书

登录到Emby的管理页面,进入“网络”设置:

  • 在“外部域”处填入您的域名。
  • 在“自定义SSL证书路径”处填入证书文件的路径,例如/config/config/ssl/文件名.pfx
  • 输入之前设置的证书密码。
  • 选择“安全连接模式”,可以是“首选但非必需”或“所有远程连接均必需”。

5. 重启Emby服务

配置完成后,重启Emby服务以使更改生效。如果您使用的是Linux服务器,可以通过运行service emby-server restart命令来重启Emby。

6. 测试HTTPS连接

使用浏览器访问您的Emby服务器,确保通过HTTPS协议可以安全访问,并且没有安全警告。