喵♂呜 的博客

一个刚毕业就当爹的程序猿 正在迷雾中寻找道路...

AlphaSSL免费的泛域名证书

AlphaSSL 原价是$149一年 通过工具可以免费申请 (PS: 目前已失效!)

生成私有Key和CSR(Certificate Signing Request)

使用OpenSSL生成

  • 在Git Bash或者Linux下执行 获得 server.key 和 server.csr

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    shell> openssl genrsa -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    ...................+++
    ................................+++
    e is 65537 (0x10001)
    Enter pass phrase for server.key:
    Verifying - Enter pass phrase for server.key:

    shell> openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=ZheJiang/L=HangZhou/O=YUMC Inc./OU=Web Security/CN=JiangTianbei/emailAddress=admin@yumc.pw"
    Enter pass phrase for server.key:

    请自行修改-subj的内容

  • C(Country Name) 国家代码 默认写CN

  • ST(State or Province Name) 省份或区域

  • L(Locality Name) 地区名称

  • O(Organization Name) 组织或公司名称

  • OU(Organizational Unit Name) 团队或者部门名称

  • CN(Common Name) 你个人名称或者服务器域名

  • 下列内容摘自百度百科SSL条目

    DN字段名缩写说明填写要求
    Country NameC证书持有者所在国家要求填写国家代码,用2个字母表示
    State or Province NameST证书持有者所在州或省份填写全称,可省略不填
    Locality NameL证书持有者所在城市可省略不填
    Organization NameO证书持有者所属组织或公司最好还是填一下
    Organizational Unit NameOU证书持有者所属部门可省略不填
    Common NameCN证书持有者的通用名必填。
    对于非应用证书,它应该在一定程度上具有惟一性;
    对于应用证书,一般填写服务器域名或通配符样式的域名。
    Email Address证书持有者的通信邮箱可省略不填

或者用工具直接生成

提交CSR

  • 打开 ASSL
  • 黏贴 server.csr 文件的内容
  • 填写邮箱地址
  • 填写选填信息(推荐)
  • 点击验证按钮

验证邮箱

  • 在邮箱内打开链接 然后点击接受
  • 等大概10几分钟左右你会收到一封邮件

生成证书

  • 搜索 YOUR SSL CERTIFICATE 往下看
  • 把—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—–复制下来 包含这两行
  • 新建文本文件 黏贴证书内容 重命名 server.crt

补全证书链

把AlphaSSL的中间证书追加到证书内容的下方 不然部分浏览器会提示证书不安全

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-----BEGIN CERTIFICATE-----
MIIETTCCAzWgAwIBAgILBAAAAAABRE7wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkGA1UEBhMCQkUx
GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds
b2JhbFNpZ24gUm9vdCBDQTAeFw0xNDAyMjAxMDAwMDBaFw0yNDAyMjAxMDAwMDBaMEwxCzAJBgNV
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMSIwIAYDVQQDExlBbHBoYVNTTCBDQSAt
IFNIQTI1NiAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2gHs5OxzYPt+j2q3
xhfjkmQy1KwA2aIPue3ua4qGypJn2XTXXUcCPI9A1p5tFM3D2ik5pw8FCmiiZhoexLKLdljlq10d
j0CzOYvvHoN9ItDjqQAu7FPPYhmFRChMwCfLew7sEGQAEKQFzKByvkFsMVtI5LHsuSPrVU3QfWJK
pbSlpFmFxSWRpv6mCZ8GEG2PgQxkQF5zAJrgLmWYVBAAcJjI4e00X9icxw3A1iNZRfz+VXqG7pRg
IvGu0eZVRvaZxRsIdF+ssGSEj4k4HKGnkCFPAm694GFn1PhChw8K98kEbSqpL+9Cpd/do1PbmB6B
+Zpye1reTz5/olig4hetZwIDAQABo4IBIzCCAR8wDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQI
MAYBAf8CAQAwHQYDVR0OBBYEFPXN1TwIUPlqTzq3l9pWg+Zp0mj3MEUGA1UdIAQ+MDwwOgYEVR0g
ADAyMDAGCCsGAQUFBwIBFiRodHRwczovL3d3dy5hbHBoYXNzbC5jb20vcmVwb3NpdG9yeS8wMwYD
VR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5nbG9iYWxzaWduLm5ldC9yb290LmNybDA9BggrBgEF
BQcBAQQxMC8wLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMTAf
BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQsFAAOCAQEAYEBoFkfn
Fo3bXKFWKsv0XJuwHqJL9csCP/gLofKnQtS3TOvjZoDzJUN4LhsXVgdSGMvRqOzm+3M+pGKMgLTS
xRJzo9P6Aji+Yz2EuJnB8br3n8NA0VgYU8Fi3a8YQn80TsVD1XGwMADH45CuP1eGl87qDBKOInDj
ZqdUfy4oy9RU0LMeYmcI+Sfhy+NmuCQbiWqJRGXy2UzSWByMTsCVodTvZy84IOgu/5ZR8LrYPZJw
R2UcnnNytGAMXOLRc3bgr07i5TelRS+KIz6HxzDmMTh89N1SyvNTBCVXVmaU6Avu5gMUTu79bZRk
nl7OedSyps9AsUSoPocZXun4IRZZUw==
-----END CERTIFICATE-----

配置Nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# HTTPS server
server {
listen 443 ssl;
server_name localhost;

ssl_certificate /opt/ssl/server.crt; #fullchain.pem;
ssl_certificate_key /opt/ssl/server.key; #privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:RC4-SHA:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!DSS:!PKS;
ssl_session_cache builtin:1000 shared:SSL:10m;

location / {
root html;
index index.html index.htm;
}
}

欢迎关注我的其它发布渠道