回答:
.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
注:Ubuntuでグループをchmod 710
サポートしますssl-cert
。(コメントを参照)
許可を700
オンに設定して/etc/apache2/ssl/private
も正常に機能します。
入れ公共での中間証明書(複数可)と一緒に、WWWのSSL証明書(複数可)を
/etc/apache2/ssl
入れて、民間でのSSLキー(S)/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」を使用するか、2行目をスキップします。
公開証明書
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
*繰り返しますが、これは疑問を超えていますがsudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/mysiteexample-ssl.conf
、単純な(Ubuntu / Debian)Apache / SSL 'conf'ファイルで通常使用されるデフォルトのディレクティブ/ディレクトリの適切な出発点/例として、デフォルトのApache SSLサイト構成ファイル()をコピーできます。通常、自己署名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
ここにすべての答えはOKに見えるが、私は私が見つけた一つのことが問題です...あなたはチェーンファイルを思い付く中間体や根を使用して証明書を連結している場合は言及したいと思います、していないことを中に入れた/etc/ssl/certs
ときので、c_rehash
実行されると、証明書内のルートまたは中間体により、証明書へのハッシュシンボリックリンクが作成される場合があります。
その後、証明書の有効期限が切れて削除し、再実行するc_rehash
必要がない場合は、/etc/ssl/certs
ディレクトリ内のハッシュシンボリックリンクが壊れている可能性があり、ローカルマシンが自分自身に接続しようとすると奇妙なことが起こりますSSL、および検証するルートを見つけることができません。たとえば、curlを使用すると、突然次のようになりました。
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
応じて、タイムズスクエアの看板に置くことができます。