默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指--with-http_ssl_module参数
生成证书
1. 创建服务器私钥,命令会让你输入一个口令:
$ openssl genrsa -des3 -out server.key 1024
2. 创建签名请求(CSR):(如果是网站服务器证书,那么Common Name中应该填写网站的域名,支持*统配符)
$ openssl req -new -key server.key -out server.csr
3. 去掉私钥文件的口令:
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
4. 最后生成证书:
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
配置nginx
修改Nginx配置文件,让其包含新标记的证书和私钥:
server {
server_name YOUR_DOMAINNAME_HERE;
listen 443;
ssl on;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server.key;
}
}
重启nginx。
这样就可以通过以下方式访问:
https://YOUR_DOMAINNAME_HERE
另外还可以加入如下代码实现80端口重定向到443
server {
listen 80;
server_name ww.centos.bz;
rewrite ^(.*) https://$server_name$1 permanent;
}
参考: