创建自签名证书的步骤 注意:以下步骤仅用于配置内部使用或测试需要的SSL证书。 第1步:生成私钥 使用openssl工具生成一个RSA私钥 $ openssl genrsa -des3 -out server.key 2048 说明:生成rsa私钥,des3算法,2048位强度,server.key是秘钥文件名。 注意:生成私钥,需要提供一个至少4位的密码。 第2步:生成CSR(证书签名请求) 生成私钥之后,便可以创建csr文件了。 此时可以有两种选择。理想情况下,可以将证书发送给证书颁发机构(CA),CA验证过请求者的身份之后,会出具签名证书(很贵)。另外,如果只是内部或者测试需求,也可以使用OpenSSL实现自签名,具体操作如下: $ openssl req -new -key server.key -out server.csr 说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。 Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:Beijing Locality Name (eg, city) []:Beijing Organization Name (eg, company) [Internet Widgits Pty Ltd]:joyios Organizational Unit Name (eg, section) []:info technology Common Name (e.g. server FQDN or YOUR name) []:demo.joyios.com Email Address []:liufan@joyios.com 第3步:删除私钥中的密码 在第1步创建须要指定一个密码。而这个密码会带来一个副作用,那就是在每次Apache启动Web服务器时,都会要求输入密码,这显然非常不方便。要删除私钥中的密码,操作如下: $ cp server.key server.key.org $ openssl rsa -in server.key.org -out server.key 第4步:生成自签名证书 如果你不想花钱让CA签名,或者只是测试SSL的具体实现。那么,现在便可以着手生成一个自签名的证书了。 需要注意的是,在使用自签名的临时证书时,浏览器会提示证书的颁发机构是未知的。 $ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./server.key -out server.crt 3072 配置Apache Https 开启ssl模块 sudo a2enmod ssl 启用ssl站点 sudo a2ensite default-ssl 打开apache 重写 sudo a2enmod rewrite