说明:用ssl搭建安全网站就可以用https访问网站了如https://aaa.domain.com
1.先使用自动办法证书的方法创建证书:
创建一个私钥文件。aaa.domain.key和aaa.domain_nopass.key都是私钥文件,不同的是前者须要输入密码,而后者不须要。假设在Linux的/etc/rc.local文件中添加Nginx的启动脚本,重启服务器后,Nginx会自动启动。但是,如果私钥aaa.domain.key用于Nginx,那么在Nginx启动时会提示输入该私钥文件的密码,Nginx则无法完成自动启动。使用aaa.domain_nopass.key在启动Nginx时无须输入密码
openssl genrsa -des3 -out aaa.domain.key 1024
openssl req -new -key aaa.domain.key -out aaa.domain.csr
openssl rsa -in aaa.domain.key -out aaa.domain_nopass.key
openssl req -new -x509 -days 3650 -key aaa.domain_nopass.key -out aaa.domain.crt
生成密钥匙会要求输入密码和验证密码,以及一些附加信息,这些根据自己的情况进行设定就行了。
接下来配置nginx,配置文件如下:
#user nobody;
worker_processes 1;
error_log /home/logs/error.log;
pid /run/nginx.pid;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
sendfile on;
#tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
# HTTPS server
#
server
{
listen 80;
server_name aaa.domain.com;
location /
{
index index.html index.php;
root /home/serverssl;
}
}
server {
listen 443 ssl;
server_name aaa.domain.com;
ssl_certificate /home/aaa.domain.crt;
ssl_certificate_key /home/aaa.domain_nopass.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /
{
index index.html index.php;
root /home/serverssl;
}
}
}
配置完成后进行测试:
由于这是自己颁发的证书所以浏览器会提示不安全。如果需要安全证书我们需要先生成自己的私钥文件和CSR文件。然后把CSR文件(aaa.domain.csr)提交给CA机构,由CA机构生成CRT证书文件给我们。国外著名的CA机构有VeriSign、GlobalSign、GeoTrust、Thawte、Visa、Microsoft等。