Every 6 months or so, I go to publish and XCode tells me that I can't because my certs are expired.
Here is are a few steps that helped me figure it out.
First, XCode helps to manage this stuff.
With XCode running, in the XCode menu select [XCode -> Preferences]
Then the "Accounts" screen will come up. So click on your Apple Id, and login if requested. Make sure this is the account your are developing and publishing with.
Click on the team that has publishing permissions and press the "Manage Certificates.." button. A new screen will scroll down showing the certs associated with the team.
If a certificate is expired, it is here that it will show up. You can leave it in your account, or you can simply create a new one. In this instance, creating a new one worked best as I was missing the key to the Distribution cert. So I clicked on the [+] to drop down the list of what I was going to add.
(I went through and deleted all my keys and certs to start over. May not have been necessary but DID require a new cert to be created.)
Just selecting the type of cert you are developing for will create it under your account and add it to your signing certs automatically. You should be good to go.
You may need to go through and delete all certs and keys and simply start over. You may also need to go into your developer account on Apple's website to remove accounts that are no longer in use or expired. It doesn't seem that it is manageable from here. In doing so, everyone that is possibly using those certs as well will be notified.