自建证书:

1.生成私钥

$openssl genrsa -des3 -out private.key 2048

des3代表加上了加密,后面的2048是代表生成的密钥的位数;

2.生成证书请求

$openssl req -new -key private.key -out server.csr 

这一步需要填写一些信息,其中Common Name (e.g. server FQDN or YOUR name) []这个需要填写你的域名或服务器地址。

3.生成服务器的私钥,去除密钥口令:

$openssl rsa -in private.key -out server.key

4.使用私钥为证书请求签名,生成给服务器签署的证书:

openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650

格式是x509的PEM格式;
-outform pem指定证书生成的格式,默认是pem,所以可以省去;


配置Nginx

server {
        server_name i.oroct.com;

        # 重要看这里
        listen 443 ssl;
        ssl on;
        ssl_certificate /etc/nginx/key/server.crt;
        ssl_certificate_key /etc/nginx/key/server.key;
        ssl_session_timeout 5m;

        # 以下的配置与其他配置相同
        
        root /var/www/html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.php index.nginx-debian.html;

        location / {
            #此处省略去其他配置...
        }
}

http跳转
输入http网址时,自动跳转向https.

server {
    listen 80;
    server_name cloud.example.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}