在Ubuntu上,它看起来像是用于签署证书(供nginx使用)的私钥的最佳位置在/etc/ssl/private/
这个答案补充说,证书应该在/etc/ssl/certs/
但这似乎是一个不安全的地方。 .crt
文件需要保持安全还是被视为公共?
.crt文件被发送到连接的所有东西。 它是公开的。 ( chown root:root
和chmod 644
)
添加到私钥位置; 确保你妥善保护它,并把它放在那里。 ( chown root:ssl-cert
和chmod 640
)
只要您正确保护您的私钥文件,放置它们的位置并不重要。 公共证书是公开的; 不需要保护 – 服务器特权或其他。
为了扩大答案,我不使用默认位置/etc/ssl
。
由于备份+其他原因,将我的所有矿区保留在一个单独的区域更容易。
对于Apache SSL,我将它保存在/etc/apache2/ssl/private
或类似的“root”区域中。
这篇文章是面向Ubuntu(Debian)+ Apache的,但是应该可以在大多数系统上运行 –
只需在给定的configuration(apache / nginx / etc)中应用权限并更新位置/path。
如果SSL密钥文件被正确保护(目录和文件),你会没事的。 注意笔记!
sudo mkdir /etc/apache2/ssl sudo mkdir /etc/apache2/ssl/private sudo chmod 755 /etc/apache2/ssl sudo chmod 710 /etc/apache2/ssl/private
注意:
chmod 710
支持Ubuntu下的ssl-cert
组。 (看评论)
在/etc/apache2/ssl/private
上将权限设置为700
也可以正常工作。
sudo chown -R root:root /etc/apache2/ssl/ sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
注意:
如果你没有ssl-cert组,只需使用上面的“root:root”或跳过第二行。
将公共 www ssl证书和中间证书一起放入
/etc/apache2/ssl
将私有 ssl密钥放在/etc/apache2/ssl/private
公共证书
sudo chmod 644 /etc/apache2/ssl/*.crt
私人密钥
sudo chmod 640 /etc/apache2/ssl/private/*.key
注意:
由于Ubuntu ssl-cert组,该组权限被设置为READ(640)。 '600'也不错。
sudo a2enmod ssl
(见最后一段)*
sudo nano /etc/apache/sites-available/mysiteexample-ssl.conf sudo a2ensite mysiteexample-ssl # ^^^^^^^^^^^^^^^^^ <-Substitute your ".conf" filename(s)
sudo service apache2 restart
要么
sudo systemctl restart apache2.service
*这又超出了问题的范围,但您可以复制默认的Apache SSL站点configuration文件( sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
)作为一个很好的起点/通常在简单的(Ubuntu / Debian)Apache / SSL“conf”文件下使用的默认指令/目录的例子。 它通常指向一个自签名的SSL证书+密钥(snakeoil),CA捆绑软件,以及用于给定SSL站点的通用指令 。
复制完成后,只需编辑新的.conf文件,并根据需要添加/删除/更新,然后执行sudo a2ensite mysiteexample-ssl
来启用它。
所有的答案似乎都没问题,但我想提一件我发现的问题是…如果你必须连接你的证书与中间体或根源来链接文件, 不要把它放在/etc/ssl/certs
,因为当c_rehash
运行时,由于其中的根或中间体,它可能会为你的证书创build散列符号链接。
然后,如果你的证书已经过期,并且你删除了它们,并且不知道要重新运行c_rehash
,那么你可能在你的/etc/ssl/certs
目录中破坏了散列符号链接,当你的本地机器尝试通过SSL连接到自己,并且找不到要validation的根。 例如,curl我突然开始得到:
curl: (60) SSL certificate problem: unable to get issuer certificate
在清理完一些旧的.crt和级联的.pem文件之后不久,我在/etc/ssl/certs
。
至less在别的地方储存链条可以避免这个问题。 我最终创build了一个/etc/ssl/local_certs
来保存我的证书和链,所以它们不会在你在/etc/ssl/certs
find的CA证书混乱中丢失
如果对个人文件/目录的权限设置为chown root :0 private.key
和chmod 600 private.key
那么并不是一个不安全的地方,只有root可以读取它。 你说的CSR和证书文件不那么敏感。
有了这些权限,你提到的path和/ usr / local / ssl应该没问题。