Answers:
.crt文件被发送到所有连接的文件;它是公开的。(chown root:root
和chmod 644
)
添加到私钥位置;确保将其正确固定以及存放在其中。(chown root:ssl-cert
和chmod 640
)
ssl-cert
,用于创建自签名的蛇油证书
只要适当地保护私钥文件,将它们放在何处都没关系。该公证书是公开的; 不需要保护-服务器特权或其他。
为了扩大答案,我不使用默认位置/etc/ssl
。
由于备份和其他原因,我将所有地雷都放在一个单独的区域比较容易。
对于Apache SSL,我将其保留在/etc/apache2/ssl/private
或类似的“根区域”中/etc/
。
这篇文章是针对Ubuntu(Debian)+ Apache的,但是应该适用于大多数系统-
只需在给定的配置(apache / nginx / etc)中应用权限并更新位置/路径即可。
如果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
支持ssl-cert
Ubuntu下的组。(请参阅评论)
将权限设置为700
on /etc/apache2/ssl/private
也可以正常工作。
将公共 www ssl证书以及中间证书
/etc/apache2/ssl
放入私有 ssl密钥放入/etc/apache2/ssl/private
sudo chown -R root:root /etc/apache2/ssl/
sudo chown -R root:ssl-cert /etc/apache2/ssl/private/
注意:
如果您没有ssl-cert组,只需在上面的行中使用'root:root'或跳过第二行。
公开证书
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网站配置文件(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
以启用它。
<VirtualHost *:443>
部分sites-available/mysite.conf
应包括以下证书:SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mysite.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/mysite.key
这里的所有答案似乎都不错,但是我想提到一件事,我发现这是一个问题...如果您必须将证书与中间件或根目录连接起来以提供一个链文件,请不要将其放在中/etc/ssl/certs
,因为当c_rehash
运行时,由于其根或中间节点,可能会创建到证书的哈希符号链接。
然后,如果您的证书已过期并且您将其删除,并且不知道要重新运行c_rehash
,则稍后可能会损坏/etc/ssl/certs
目录中的哈希符号链接,并且当您的本地计算机尝试通过其自身连接时,奇怪的事情开始发生SSL,并且找不到要验证的根。例如,我突然开始卷曲:
curl: (60) SSL certificate problem: unable to get issuer certificate
清理了我在中的一些旧.crt和串联的.pem文件后不久/etc/ssl/certs
。
至少将链条存储在其他位置可避免此问题。我最终制作了一个/etc/ssl/local_certs
以容纳我的证书和链条,因此它们不会因您在其中发现的一堆CA证书而迷失/etc/ssl/certs
如果将单个文件/目录的权限设置为chown root :0 private.key
,chmod 600 private.key
这样只有root可以读取它,这并不是真正不安全的地方。正如您所说,CSR和证书文件不太敏感。
具有这些许可权,您提到的路径和/ usr / local / ssl应该很好。
位置正确:
/etc/ssl/certs/
用于.crt
文件/etc/ssl/private
用于.key
文件所有者必须是root:root
两者的所有者(sudo chmod root:root <file>
如有需要,请更改)。
权限:
644
用于.crt
文件600
用于.key
文件这将适用于nginx
。
.crt
如果愿意,您可以在时代广场的广告牌上放上您的广告。