自己发的证书完全不可靠了---
申请了免费一年的证书,本来想配置到nginx里的,把申请到的key和crt文件放到/etc/nginx/certs/目录下,并命名为server.key和server.crt,对于申请的StartCOM Class1证书还需要以下命令,合并证书链:1234wget http://cert.startssl.com/certs/ca.pemwget http://cert.startssl.com/certs/sub.class1.server.ca.pemcat ca.pem sub.class1.server.ca.pem >> ca-certs.crtcat ca-certs.crt >> server.crt然后修改Nginx的配置文件nginx.conf如下:1234567891011121314151617# 下面这段是强制80端口非SSL客户端转向至https安全连接# 如果希望保留http非安全连接,请去掉这里server { listen 80; server_name www.example.com; # 你自己的域名 rewrite ^(.*) https://$server_name$1 permanent;} # 这里是SSL的相关配置server { listen 443; server_name www.example.com; # 你自己的域名 root /home/www; ssl on; ssl_certificate /etc/nginx/certs/server.crt; ssl_certificate_key /etc/nginx/certs/server.key;}
location ~ ^/(testsoap|get_token|qiyun|index|pay|api|test|admin)\.php(/|$) {
fastcgi_pass 127.0.0.1:9001;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
}
文主要介绍在Linux环境下通过openssl生成自己的ssl证书,并搭配nginx服务器启用https。我对证书的了解也不是很多,从网上搜罗一些资料,并在CentOS上成功搭建HTTPS服务器,通过本文整理如下:
准备工作
- /etc/pki/CA/index.txt 跟踪已颁发的证书,初始为空。注意是0字节,不然会报出一个错误。 vim /etc/pki/CA/index.txt
- wrong number of fields on line 1 (looking for field 6, got 1, '' left)
- /etc/pki/CA/serial文件,最后一次颁发的证书的序列号,初始值01,也可以是00等其它值。echo /etc/pki/CA/serial
开始
切换工作路径为/etc/pki/tls方便openssl文件引入。
生成服务器端的私钥 key文件
openssl genrsa -des3 -out server.key 1024
在/etc/pki/tls目录下生成了server.key文件。
生成CSR文件
openssl req -new -key server.key -out server.csr -config openssl.cnf
在/etc/pki/tls目录下生成了server.csr文件。
自己生成CA的签名
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
生成两个文件 ca.key 和ca.crt文件,后面签名用。
CA签名CSR文件形成证书 crt文件
用上一步生成的ca.key和ca.crt签名第二步生成了csr文件。
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
生成了server.crt文件。
合并证书文件(crt)和私钥文件(key)
cat server.crt server.key > server.pem
搭建https服务器
修改nginx配置文件如下:
server {
listen 443;
server_name localhost;
root /var/www/html;
ssl on;
ssl_certificate /etc/pki/tls/server.pem;
ssl_certificate_key /etc/pki/tls/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
}
}
然后通过浏览器输入 https://localhost就可以查看效果了。